System and method for a computerized learning system

ABSTRACT

There is a computerized learning system and method which updates a conditional estimate of a user signal representing a characteristic of a user based on observations including observations of user behavior. The conditional estimate may be updated using a non-linear filter. Learning tools may be generated using the computerized learning system based on distributions of desired characteristics of the learning tools. The learning tools may include educational items and assessment items. The learning tools may be requested by a user or automatically generated based on estimates of the user&#39;s characteristics. Permissions may be associated with the learning tools which may only allow delegation of permissions to other users of lower levels. The learning system includes a method for annotating learning tools and publishing those annotations. In-line text editors of scientific text allow users to edit and revised previously published documents.

TECHNICAL FIELD

This patent document relates to managing information within an electronic learning system. In particular, this patent document relates to generating learning tools and estimating characteristics of users and learning tools within an electronic learning system.

BACKGROUND

Increasingly, more and more tests are being administered using electronic resources. Students may take examinations through online testing systems which may provide adaptive testing.

In one system, U.S. Pat. No. 7,628,614 describes a method for estimating examinee attribute parameters in cognitive diagnosis models. The patent describes estimating for each assessment one or more item parameters and also describes tracking item responses by considering various examinee parameters. Although many systems determine a user's responses to an examination question item, those systems do not consider user behavior that may be related to the user's responses within the examination or more importantly user's proficiency. By focusing on solely examination question item response data, those systems fail to consider the wealth of information that may be collected within a computerized learning system.

Many assessment systems only track the ability of the user and neither consider nor attempt to improve the performance of the students. These systems also fail to recognize the potential uses for the vast amount of information that may be detected while a user accesses a learning system. Moreover, some current methods of interpreting data are unable to cope with the high volume and plethora in types of traffic information that potentially may be collected during an educational or assessment session. Large amounts of data and types of activity traffic may prove to be difficult to effectively model and process in order to discover useful information. Many assessment systems therefore only track data associated with user's responses during examination.

Also, it may be difficult and time consuming for instructors to create new examinations and furthermore prepare students by creating additional practice examinations. Traditional methods involve picking questions from a textbook or from past exam in an attempt to make a mock exams and even the examination themselves. Such methods are not only onerous to instructors but more importantly, especially in a multi-section course setup, can lead to a bias in picking questions similar to an already known final in their instruction or mock exams. Some basic methods have been developed by other to generate random problem sets (i.e. different questions), but such methods are too primitive for actual use in creating a well balance exam in terms of distribution of difficulty and variety of questions contained, thus have only be used in low stakes homework. Furthermore full solutions are almost never provided, only the final solution. The lack of a method for simulation exam questions with full solution is detrimental in helping students prepare and study in an effective and smarter manner.

In any sizeable group of students, typically, students will struggle in different study areas or be at different proficiency levels for the same learning objective. An instructor will typically tailor instruction to the average student group leaving weaker students frustrated and lost and stronger students unchallenged. The traditional education system fails to tailor education items and examination items for the needs of each individual student.

Traditionally, courses are designed by professors with experience on what topics must be covered during a semester and in what proportions. Information about student progress can only be found during examinations and in traditional systems, this information is not easily presented and cannot be used to determine the effectiveness and quality of specific learning resources, courseware, textbooks, activities and schedule.

SUMMARY

In an embodiment there is method for updating and using a conditional estimate of a signal in a computerized learning system. Observations of user behavior are obtained through user interaction with the computerized learning system. A conditional estimate of a user signal representing a characteristic of a user is updated based on the observations. The conditional estimate of the signal is used to generate at least a learning tool and a report.

In an embodiment there is a method for updating and using a conditional estimate of a signal in a computerized learning system. Observations are obtained through user interaction with the computerized learning system. A conditional estimate of a signal representing a characteristic of a learning tool and a characteristic of a user is updated based on the observations using a non-linear filter. The conditional estimate of the signal is used to generate at least one of the following the or a second learning tool and a report.

In an embodiment there is a method of storing data in a computer database. A plurality of learning objectives associated with at least one of a user and a learning tool is stored. For each learning objective a probabilistic distribution representing a characteristic rating for the learning objective is assigned.

In an embodiment there is a method of generating learning tools within a computerized learning system. A plurality of learning tools is stored within a database, each one of the plurality of learning tools is associated with a plurality of characteristics. A request in the form of a distribution of desired characteristics is received. A subset of the plurality of learning tools having a plurality of characteristics satisfying the requested distribution of desired characteristics is generated.

In an embodiment there is a method of a generating learning tool for a user within a computerized learning system. A request for a learning tool satisfying a distribution of desired characteristics is submitted. A learning tool is received from a server, the learning tool satisfying a distribution of desired characteristics for the learning tool.

In an embodiment there is a method for assigning rights associated with learning tools in a computerized learning system. For an action corresponding to a learning tool associated with a user, a permission object is assigned. The permission object is capable of being assigned each one of the following permissions: a super grant permission, wherein the user is capable of performing the action and the user is capable of delegating any level of permission related to the action to a subsequent user; a grant permission, wherein the user is capable of performing the action and the user is capable of delegating a yes permission related to the action to the subsequent user; the yes permission, wherein the user is capable of performing the action and the user is unable to delegate any level of permission; and a no permission, wherein the user cannot perform the action and the user is unable to delegate any level of permission.

In an embodiment there is a computer program product comprising a non-transitive computer readable medium having encoded thereon computer executable instructions for implementing the methods described herein.

In an embodiment there is a method of adapting an educational and assessment system for a user. Educational items and assessment items are stored in a database. The following is repeated for a plurality of users, a plurality of assessment items and a plurality of educational items: (a) updating a characteristic of a user of the plurality of users and a characteristic of an assessment item of the plurality of assessment items based on interaction between the user and assessment item, (b) and updating the characteristic of the user of a plurality of users and a characteristic of a first educational item based on interaction between the user and the first educational item. At least one of an educational item of the plurality of educational items, an assessment item of the plurality of assessment items is presented to a selected user of the plurality of users to generate a desired effect on the user based on the characteristic of the user.

In an embodiment there is a method of integrating scientific symbols in-line with text in content within a computerized learning system. The method switches from text mode into scientific mode. Plain-language text input is converted into scientific code. A graphical representation of the scientific code is displayed in-line with the text. The plain-language text input is adaptively predicted using context-based prediction.

In an embodiment there is a method for annotating learning tools within a computerized learning system. A first user's annotation of a learning tool is stored in the computerized learning system, the learning tool having a plurality of characteristic. At least a second user of a plurality of users is permitted to have access to the annotated learning tool. A learning tool object corresponding to the annotated learning tool is created, the annotated learning tool having a plurality of characteristics. A subset of the plurality of characteristics of the annotated learning tool is set to be the same as the plurality of characteristics of the learning tool.

These and other aspects of the device and method are set out in the claims, which are incorporated here by reference.

BRIEF DESCRIPTION OF THE FIGURES

Embodiments will now be described with reference to the figures, in which like reference characters denote like elements, by way of example, and in which:

FIG. 1 is a flow chart showing a method of estimating a signal of a user;

FIG. 2 is a flow chart showing a method of storing a probabilistic distribution;

FIG. 3 is a flow chart showing a method of generating learning tools;

FIG. 4 is a flow chart showing a method of requesting and generating learning tools;

FIG. 5 is a flow chart showing a method of delegating user permissions;

FIG. 6 is flow chart showing a method for updating characteristics of users, assessment items and educational items;

FIG. 7 is a flow chart showing a method of annotating learning tools;

FIG. 8 shows a plan diagram of a computerized learning system;

FIG. 9 is a flow chart showing a method of filtering data;

FIG. 10 is a chart showing particle updating for a non-linear particle filter;

FIG. 11 is a chart showing particle weighting for a non-linear particle filter;

FIG. 12 is a chart showing a discrete space grid with particles;

FIG. 13 is a chart showing a discrete space grid before and after refinement;

FIG. 14 is a flow chart showing a method of generating learning tools;

FIG. 15 is a flow chart showing the method of FIG. 14;

FIG. 16 is a flow chart showing the method of FIG. 14;

FIG. 17 is a flow chart showing the method of FIG. 14;

FIG. 18 is a flow chart showing the method of FIG. 14;

FIG. 19 is a flow chart showing the method of FIG. 14;

FIG. 20 is a flow chart showing the method of FIG. 14;

FIG. 21 is a flow chart showing the method of FIG. 14; and

FIG. 22 is an example embodiment of a interface for a user generated learning tool.

DETAILED DESCRIPTION

As shown in FIG. 1, there is a method 100 for updating and using a conditional estimate of a signal in a computerized learning system. Observations of user behavior are obtained 102 through user interaction with the computerized learning system. A conditional estimate of a user signal representing a characteristic of a user is updated 104 based on the observations. The conditional estimate of the signal is used 106 to generate at least a learning tool 108 and a report 110.

In an embodiment of the method 100, the observations that are obtained through user interaction with the computerized learning system also include answers given by user in response to assessment items. The conditional estimate of the signal 104 may represent both a characteristic of a learning tool and a characteristic of a user and the conditional estimate may be updated based on the observations using a non-linear filter.

As shown in FIG. 2, there is a method 200 of storing data in a computer database 808 (FIG. 8). A plurality of learning objectives associated with at least one of a user and a learning tool is stored 202. For each learning objective a probabilistic distribution representing a characteristic rating for the learning objective is assigned 204.

As shown in FIG. 3, there is a method 300 of generating learning tools within a computerized learning system. A plurality of learning tools is stored 302 within a database 808 (FIG. 8), each one of the plurality of learning tools is associated with a plurality of characteristics. A request 304 in the form of a distribution of desired characteristics is received. A subset of the plurality of learning tools having a plurality of characteristics satisfying the requested distribution of desired characteristics is generated 306.

As shown in FIG. 4 there is a method 400 of generating learning tools for a user 818 (FIG. 8) within a computerized learning system. A request 402 for a learning tool satisfying a distribution of desired characteristics is submitted. The learning tool is received 404 from a server 810 (FIG. 8), the learning tool satisfies a distribution of desired characteristics for the learning tool.

As shown in FIG. 5 there is a method 500 for assigning rights associated with learning tools in a computerized learning system. For an action corresponding to a learning tool associated with a user, a permission object is assigned 502. The permission object is capable of being assigned each one of the following permissions at 504: a super grant permission, wherein the user is capable of performing the action and the user is capable of delegating any level of permission related to the action to a subsequent user; a grant permission, wherein the user is capable of performing the action and the user is capable of delegating a yes permission related to the action to the subsequent user; the yes permission, wherein the user is capable of performing the action and the user is unable to delegate any level of permission to the subsequent user; and a no permission, wherein the user cannot perform the action and the user is unable to delegate any level of permission to the subsequent user.

As shown in FIG. 6 there is a method 600 for adapting an educational and assessment system for a user. Educational items and assessment items are stored in a database 602. Repeating the following for a plurality of users, a plurality of assessment items and a plurality of educational items: (a) updating 606 a characteristic of a user of the plurality of users and updating 608 a characteristic of an assessment item of the plurality of assessment items based on interaction between the user and assessment item, and (b) updating 610 the characteristic of the user of a plurality of users and updating 612 a characteristic of a first educational item based on interaction between the user and the first educational item. At least one of an educational item of the plurality of educational items, an assessment item of the plurality of assessment items is presented 614 to a selected user of the plurality of users to generate a desired effect on the user based on the characteristic of the user.

In FIG. 7A there is a method 700 of integrating scientific symbols in-line with text in content within a computerized learning system. The method switches 702 from text mode into scientific mode. Plain-language text input is converted 704 into scientific code. A graphical representation of the scientific code is displayed 706 in-line with the text. The plain-language text input is adaptively predicted 708 using context-based prediction.

In FIG. 7B there is a method 720 for annotating learning tools within a computerized learning system. A first user's annotation of a learning tool is stored 722 in the computerized learning system, the learning tool having a plurality of characteristics. At least a second user of a plurality of users is permitted to have access 724 to the annotated learning tool. A learning tool object corresponding to the annotated learning tool is created 726, the annotated learning tool having a plurality of characteristics. A subset of the plurality of characteristics of the annotated learning tool is set 728 to be the same as the plurality of characteristics of the learning tool.

In an embodiment there is a computer program product comprising a non-transitive computer readable medium having encoded thereon computer executable instructions for implementing the methods described herein.

For ease of explanation, consistent notations and symbols will be used to describe the system and method. The various notations and symbols used to describe the system are exemplary only and are intended to assist the reader in understanding the system and method.

Objects: The notation used to describe data structure objects is presented in an object-oriented format. A data structure object type will be labeled by a symbol, where a symbol is either one or more italicized letters of the English or Greek alphabet. For the ease of recognition and meaning, these symbols may be denoted as underscored or italicized words.

Time: The italicized letter t will be reserved to indicate time which may further be indexed (e.g. t_(k) where kε{0, 1, 2, . . . , K}) and will be used to reference an instance of an object at a point in time using subscript notation (e.g. object X at time t_(k), is denoted by X_(t) _(k) ).

Collections: Superscript position on an object will be reserved for indexing objects within a collection or set of objects of the same type. For example X_(t) _(k) ^(i) references the ith object in a collection {X^(j)}_(j=1) ^(N) at time t_(k) (i.e. X^(i)ε{X^(j)}_(j−1) ^(N) where 1≦i≦N).

Fields: These data structure objects may have data member fields which are either references to instances of other object types, a single numerical value, an n-dimensional array of numerical values or an n-dimensional array of references to instances of other object types.

A particular field for an object will be labeled by the symbol α_(i) where subscript i denotes the ith field for the object followed by either a single or n element list enclosed in round brackets.

For both a single and n element list, the first element will denote the data structure object that the member data field belongs to, whereas for the n element lists, the remaining n−1 element(s) will indicate (n−1)-dimensional array indices. For example α₂(X)ε

means that the 2^(nd) field for object X is a real numbered value, and α₆(X, l, 4, 23)ε{0, 1, 2, . . . , N} means that the 6^(th) field for object X at array position (l, 4, 23) is an integer value from zero to N.

User means any arbitrary individual or group who has access to the computerized learning system. For example, a user may be

(a) an instructor-user or “instructor”,

(b) an author-user or “author”,

(c) guest-user or “guest”,

(d) student-user or “student” or “learner”,

(e) consumer-user or “consumer”, and

(f) proctor-user or “proctor”

each as an individual user or a user group.

An individual may be a member of more than one of the user-types listed above. For example, a student learner may also be an author if the student publishes annotations relating to course material. Similarly, an instructor in one course may be a learner in a different course.

Objects

Learning Objectives or Learning Outcomes (“LO” or “LOG” to Represent Learning Objective Groups)

A learning objective is a characteristic of a learning tool that represents an objective that an education tool is intended to achieve or which an assessment tool is intended to test. The learning objective may be specific, such as testing a user's ability to answer a specific question or may be general, such as describing a subject-area which an educational item is intended to teach. For example, the learning object may include the content relating to an assessment question. The activity refers to the type of activity associated with the learning tool. Using mathematics as an example, a question may require a student to prove a statement, provide a counter-example, solve for an equation or variable or perform some other activity which serves to test a user's understanding of mathematics.

We denote learning objective L¹ε{L^(j)}_(j−1) ^(|L|) where 1≦l≦|L|. In an embodiment, each learning objective object has the following attribute fields:

TABLE 1 j Symbol Description of field j for L^(l) 0 α₀(L^(l) , k) ∈ {L^(j)}_(j=1) ^(|L|) Recursive Structure: In an Recursive Structure embodiment, we recursively define a learning objective as a collection of other resources. The base atom or smallest indivisible unit is the (action, object)- pair. 1 ${\alpha_{1}\left( {L^{1},\begin{bmatrix} {action} \\ {object} \end{bmatrix}} \right)} \in \begin{Bmatrix} {{Yes},} & {No} \end{Bmatrix}$   2-Tuple (action, object) 2-Tuple (action, object): In an embodiment, we define and represent learning objectives as the 2-tuple (action, object) where action is represents learning activities (verbs), object represent the learning objects (nouns or statements). For example: (“Prove”, “equation 2x⁵ − 3x² + 4x + 5 = 0 has at least one real root”) In an embodiment, learning objectives may be stored as granular topics (just the objects) within a course or subject grade level. For example: (“the Intermediate Value Theorem”) or (“power rule for differentiation of polynomial functions”).

Learning Resources

Learning tools, or learning resources, are content items within a computerized learning system which can be accessed by users to facilitate learning or to provide assessment. Learning tools may be provided to a consumer-user directly through the system or via a link. Examples of learning tools include educational items such as eBooks readings, audible lectures, interactive examples, follow-up training sessions, virtual tutoring sessions and assessment items, such as assignments, examinations, laboratories and exercises.

Learning tools may be associated with one or more characteristics. Characteristics of a learning tool may include attributes of the learning tools such as the learning objectives, the learning style, the difficulty, the effectiveness, the motivation rating, the popularity, the format availability, the time associated with and the type of the learning tool. The quality of a learning tool may include a variety of different types of quality ratings. The quality of the learning tool may be determined by the effectiveness of the learning tool to produce an improvement in a learner's proficiency from one level to a higher level. Quality may also be determined based on the clarity of communication within the learning tool. Quality may also be determined based on the teaching quality of the learning tool in producing a desired teaching result. Motivation includes the ability of a learning tool to motivate a user to learn material or respond to an assessment. For example, a short educational video clip may improve a user's motivation in a subject area, whereas a lengthy and complicated reading passage may correspond to a low motivation level. The popularity of a learning tool may be determined based on a user response to the learning tool. The format availability of a learning tool may include tools to enable auditory, visual or tactile interaction with the learning tool, for example to assist users with disabilities. The total time associated with the learning tool is a measure of the length of time a user is expected to require to consume an educational item or to complete an assessment item. The system may also provide scheduling related information for the learning tool, for example including the time the learning tool is made available to a user and the amount of time a user has to consume the resource.

The resource type may be any type of resource which may provide educational to or assessment of a user, such as eBooks, audible lectures, interactive lectures, training sessions, virtual tutoring, homework assignments, full solution to assessment items, lecture notes, algorithmic/templated questions or exercises, accessible for visually impaired (for example, with WAI-ARIA 1.0 standards for screen readers), courseware, Learning Objective Map or Course Blueprints, Questions, Homework assignments, Exams, lab work, eWorksheets, algorithmic/template, SmartPlot Questions include graphics. The types of learning tools may include as subsets learning tools of a different type. For example, a course blueprint learning tool may include various other learning tools such as homework assignments, examinations, lectures and training sessions.

A learning tool may be formed as a collection of various learning tools. The base atom or smallest indivisible unit is a paragraph. For example, a course eBook may be formed from a collection of chapters, each of which is formed from a collection of topics, and each topic may be formed from a variety of paragraphs. Although smaller divisions than paragraphs may be possible, it becomes increasingly difficult to determine a learning objective related to learning tools divided beyond a paragraph. By allowing learning tools to be made up of a series of nested resources, the computerized learning system can provide a large number of permutations for content items. For example, eBooks which cover similar topic areas, may nonetheless include a great variety in terms of specific paragraphs or paragraph orders within the books. For example, a professor may wish to use a course content item for a class that contains topics in various different areas, and then generate course content items with different formats based on the motivation of individual students while teaching the same overall content.

An exemplary list of characteristics for learning tools is set out in Table 2. In some embodiments the computerized learning system may track one or more of the characteristics set out in Table 2.

In an embodiment, we denote resources by R^(r)ε{R^(j)}_(j−1) ^(|R|) where 1≦r≦|R|. In an embodiment, each resource R^(r) has the following attribute fields:

TABLE 2 j Symbol Description of field j for R^(r) 0 α₀(R^(r), k) ∈ {R^(j)}_(j=1) ^(|R|), where Recursive Structure: In an embodiment, we 0 ≦ k ≦ |α₀(R^(r))|. recursively define a resource as an ordered sequence The kth Segment of R^(r) is also a of other resources. resource. For example: In the case this resource object is a paragraph then |α₀(R^(r))| = 1 and α₀(R^(r), 1) = R^(r). If this is not the case, it is then intended that the consumer-user would first consume resource α₀(R^(r), 1) then α₀(R^(r) , 2), then α₀(R^(r), 3) and so forth. 1 α₁(R^(r), l) ∈ {0, 1, . . . 6} Learning Objective Difficulty: In an embodiment, Learning Objective Difficulty we may want to describe the difficulty level for each learning objective. For example, a difficulty level may be considered as a discrete value category from 0 to 6 rating the expected score for this assessment on the L^(l) ∈ {L^(j)}_(j=1) ^(|L|). 2 α₂(R^(r), l) ∈ {0,1, . . . 10} Effectiveness: In an embodiment, one may wish to Effectiveness/Quality Level assign a quality and effectiveness rating for the assessment. For example, the effectiveness/quality level may be considered a discrete value category from 0 to 10 rating the question's quality for L^(l) ∈{L^(j)}_(j=1) ^(|L|). 2 (α_(2−alt)(R^(r), l, a, b) ∈ {0, 1, . . . 10} Proficiency Transition Quality: In an embodiment alt. Proficiency Transition Quality we may wish to describe the effectiveness of resource for a given Proficiency Transition Quality. For example, the proficiency transition effectiveness level may be considered as a discrete value category from 0 to 10 rating for going from proficiency level a to b. 3 α₃(R^(r)) ∈ {0, 1, . . . 10} Overall Teaching Quality: In an embodiment, one Teaching Quality Level may wish to add teaching quality levels. For example, teaching quality levels may be considered as discrete value categories from 0 to 10. 4 α₄(R^(r)) ∈ {0, 1, . . . 10} Overall Communication Quality: In an Communication Quality Level embodiment, one may wish to add communication quality levels. For example, communication quality levels may be considered as discrete value categories from 0 to 10. 5 α₅(R^(r)) ∈ {−3, −2, . . . 3} Extrinsic Motivation Rating: In an embodiment, Extrinsic Motivation Rating one may wish to add extrinsic motivation rating levels. For example, extrinsic motivation rating levels may be considered as a discrete value categories from −3 to +3 which indicate the influence on a user's extrinsic motivation. For example, if this assessment R^(r) was scheduled to be a final exam, then one would expect that α₅(R^(r)) to be +2 or +3 (i.e. highly motivated). Another example: for learning resource types, one may wish to incorporate sponsorship presence, popularity rating (below), communication quality and teaching quality to resource's extrinsic motivation rating. A sponsor can be from industry, research centers or even labeled or linked with motivation real-life scenarios, data sets or contests. Sponsored questions are motivating for student- users in consuming this resource. 6 α₆(R^(r)) ∈ {0,1, . . . 10} Popularity Rating: In an embodiment, one may Popularity Level wish to add to the state space a popularity rating score. For example, popularity levels may be considered as discrete value categories from 0 to 10. 7 α₇(R^(r)) ∈ {Yes, No} Learning Style: In an embodiment, one may wish Visual Preference Level to add to the state space the following types of 8 α₈(R^(r)) ∈ {Yes, No} learning style information: visual, auditory and Auditory Preference Level tactile/kinesthetic preference level. 9 α₉(R^(r)) ∈ {Yes, No} Typically, these values would be set by the author Tactile/Kinesthetic Preference or inherited by the feature/tool which presents the Level resource to the end user. For example, visual, auditory and tactile/kinesthetic preference levels may be considered as either be applicable or not with a Yes or a No. 10 α₁₀(R^(r), i) ∈ {Yes, No} Estimated Total Time: the mean or expected time Estimated Total Time for learning or answering R^(r) depending on the context. In an embodiment, we discretize time, but alternatively, estimated total time can be a real number. I.e. α₁₀(R^(r)) ∈  

. 11 α₁₁(R^(r)) ∈ {1, 2, 3, . . . } Number of Segments: the mean or expected time Number of Segments for learning or answering R^(r) depending. on the context. Note: α₁₁(R^(r)) = |α₀(R^(r))| 12 α₁₂(R^(r)) ∈ {U^(j)}_(j=1) ^(|U|) Assignment: Assigns student groups to which this Assignment resource object is published, shared or linked. 13 α₁₃(R^(r), k) ∈  

, where Posting Schedule: It is intended that the kth 0 ≦ k ≦ |α₀(R^(r))|. segment of this resource R^(r) will be posted at time Posting Schedule α₁₃(R^(r), k) for user or user group α₁₂(R^(r)) to consume. Posting time is the earliest date and time in which resource R^(r) can be consumed by a user α₁₂(R^(r)). In another embodiment, we may wish to store in addition or in lieu of date/time the offsets from segment k − 1's start time. In an embodiment, we may further wish to add the flexibility for a user to described time in offsets from segment k − 1's end time. 14 α₁₄(R^(r), k) ∈  

, where Due Date & Time: It is intended that the kth 0 ≦ k ≦ |α₀(R^(r))|. segment of this resource R^(r) will be due at time Due Date & Time α₁₄(R^(r), k) for user or user group α₁₂(R^(r)). Due date and time is the latest date and time in which resource R^(r) can be consumed by a user α₁₂(R^(r)). In another embodiment, we may wish to store in addition or in lieu of date/time the offsets from segment k − 1's start time. In an embodiment, we may further wish to add the flexibility for a user to described time in offsets from segment k − 1's end time. 15 α₁₅(R^(r)) ∈  

Average Workload: In an embodiment, describe Average Workload workload by the estimated time divided by due date & time minus posting time. I.e. ${\alpha_{15}\left( R^{r} \right)} = {\frac{1}{{\alpha_{0}\left( R^{r} \right)}}{\sum\limits_{k = 1}^{{\alpha_{0}{(R^{r})}}}\frac{\alpha_{10}\left( {\alpha_{0}\left( {R^{r},k} \right)} \right)}{{\alpha_{14}\left( {R^{r},k} \right)} - {\alpha_{13}\left( {R^{r},k} \right)}}}}$ 16 α₁₆(R^(r)) ∈  

Average Learning Rate: In an embodiment, we Average Learning Rate describe learning rate by the following: ${\alpha_{16}\left( R^{r} \right)} = {\sum\limits_{a = 0}^{6}{\sum\limits_{b = 0}^{6}\frac{{\alpha_{2 - {alt}}\left( {R^{r},m,a,b} \right)}\left( {b - a} \right)}{10\; {\alpha_{10}\left( R^{r} \right)}}}}$ τ α_(τ)(R^(r), c) ∈ {Yes, No} Type/Format: In an embodiment, one may wish to Resource Type assign learning resources into one or more type of category: c Type Category 1 eBook 2 audible lecture 3 interactive 4 training session 5 virtual tutoring 6 homework 7 full solution 8 lecture notes 9 algorithmic/templated 10 accessible for visually impaired (WAI-ARIA 1.0 standards for screen readers). 11 Courseware: (defined below) 12 Course Template: (defined below) 13 Question 14 homework 15 Exam 16 lab work 17 eWorksheet 18 algorithmic/templated 19 Interactive/educational games 20 learning activity 21 assessment activity 22 authoring/editing activity etc . . .

Courseware or Study Plan

In an embodiment, we define courseware as a scheduled resource which has within its |α₀(R^(r))| segments a variety of resource types. I.e. The kth segment α₀(R^(r), k)ε{R^(j)}_(j=1) ^(|R|) can be: scheduled eBook readings activities, audible lecture activities, weekly homework, labs and quizzes, midterm exams and final.

User Object

In general, the user is modeled as a collection of characteristics or attributes associated with a user. Features of users such as a user's level of LO proficiency (mastery), interpersonal skills (e.g. teaching quality), motivation, and learning style & learning type preference may all be modeled within the system. A user may be described using one or more of characteristics mentioned in Table 3.

TABLE 3 j Symbol Description of field j for U^(u) 0 α₀(U^(u), k) ∈ {U^(j)}_(j=1) ^(|U|) Grouping of Users: In an embodiment, we Structure recursively define users as collections of users. The base atom or smallest indivisible unit is a user representing an individual. 1 α₁(U^(u), l) ∈ {0, 1, . . . 6} Proficiency: In an embodiment one may wish to Proficiency Level classify for each LO the individual's proficiency level (i.e. L^(l) ∈ {L^(j)}_(j=1) ^(|L|) where 1 ≦ l ≦ |L|). For example, a proficiency level may be considered as a discrete value category from 0 to 6 rating the user's knowledge and ability to perform L^(l). 2 α₂(U^(u), l, a, b) ∈ {0, 1, . . . 10} Learning Effectiveness: In an embodiment, one Learning Effectiveness Level may wish to add to the state space the individual's learning effectiveness or learning rate level for each LO the individual's proficiency level (i.e. L^(l) ∈ {L^(j)}_(j=1) ^(|L|) where 1 ≦ l ≦ |L|). For example, the learning effectiveness level may be considered as a discrete value category from 0 to 10 rating for going from proficiency level a to b. 3 α₃(U^(u)) ∈ {0, 1, . . . 10} Interpersonal Skills: In an embodiment, one Teaching Skill Level may wish to add to the state space some or all of 4 α₄(U^(u)) ∈ {0, 1, . . . 10} the following types of interpersonal skills: Communication Skill Level listening, teaching, questioning, communication, and presentation skills. Herein, we only describe skill levels for the following: teaching and communication. For example, teaching and communication skill levels may be considered as a discrete value categories from 0 to 10. 5 α₅(U^(u)] ∈ {−3, −2, . . . 3} Motivation: In an embodiment, one may wish to Extrinsic Motivation Level add to the state space the following types of 6 α₆(U^(u)) ∈ {−3, −2, . . . 3} motivation: long term intrinsic level and short Intrinsic Motivation Level term extrinsic level. For example, intrinsic and extrinsic motivation levels may be considered as a discrete value categories from −3 to −3. 7 α₇(U^(u)) ∈ {1, 2, . . . 5} Style: In an embodiment, one may wish to add Visual Preference Level to the state space the following types of learning 8 α₈(U^(u)) ∈ {1, 2, . . . 5} styles: visual, auditory and tactile/kinesthetic Auditory Preference Level preference level. 9 α₉(U^(u)) ∈ {1, 2, . . . 5} For example, visual, auditory and Tactile/Kinesthetic tactile/kinesthetic preference levels may be Preference Level considered as a discrete value categories from 1 to 5. τ α_(τ)(U^(u), c) ∈ {Yes, No} Type: In an embodiment, one may wish to User Type assign users into one or more type category: c Type Category 1 student-user or “student” or “learner”, 2 instructor-user or “instructor”, 3 author-user or “author” 4 guest-user or “guest” 5 consumer-user or “consumer” 6 proctor-user or “proctor”

Resource Generation Request Object

Through interaction with the learning system, a user may request the system to produce a learning tool with specific characteristics. The request may take the form of a distribution of desired characteristics of a learning tool. After the request for a distribution of desired characteristics is received by a database, a subset of the learning tools in the database having a plurality of characteristics satisfying the requested distribution of desired characteristics is generated. The request may be coded within the system as a request object.

In general, a user may create a request object via a command line or graphical interface or upload a request object file. A resource generation request object describes the characteristics of the user's ideal resource.

In another embodiment, the system itself may create these request objects based on some action strategy (see section ACTION STRATEGY below). For example, if a student shows deficiency in certain subject matter areas, the system may generate a request for remedial learning tools to be generated for the user. The system may create these request objects based on estimates of the characteristics of a user. For example, a learning tool may be generated based on an updated conditional estimate of a user signal representing a characteristic of the user and a characteristic of a learning tool. This estimation process is described in more detail in the section ESTIMATION PROBLEM. Once the subset of the plurality of learning tools is generated, it may be transmitted to at least one user, such as a student who requested a learning tool.

The system stores characteristics of a request object corresponding to the characteristics of learning tools stored in the system. Characteristics of a request object may include one or more of the following characteristics: the learning objective, the learning style, the difficulty, the effectiveness, the motivation rating, the popularity, the format availability, the time and the type of the request object. Additional characteristics of request objects such as locked objects and black-listed objects may also be recorded. A locked request object is a request object which specifies a fixed learning tool to be generated each time a particular set of learning tools is generated. For example, if a high-stakes examination is requested, then the teacher-user may desire certain questions within the examination to be the same for each student that writes the examination. In the context of an assessment that is not high-stakes, a professor may wish to generate subsets of the plurality of learning tools for each of the plurality of tools that are unique, for example, to gather data about questions to be asked in future courses or in order to prevent cheating. If the teacher-user dislikes questions within the system, the teacher-user may blacklist a question in order that it does not appear on any examination produced for the students within that teacher-user's course. This type of locking and blacklisting may be performed for any of the types of request objects.

The requested learning tool type may correspond to any type of learning tool within the system, including eBooks, audible lectures, interactive lectures, training sessions, virtual tutoring, homework assignments, full solution to assessment items, lecture notes, algorithmic/templated questions or exercises, accessible for visually impaired (for example, with WAI-ARIA 1.0 standards for screen readers), courseware, Learning Objective Map or Course Blueprints, Questions, Homework assignments, Exams, lab work, eWorksheets, algorithmic/template, SmartPlot Questions include graphics.

Templated questions are questions in which the parameters within the question may be stored as variables. For example, in a reading question, a single passage may include a character whose name is randomly generated for each examination and the answer key will also be updated with the same name. This may reduce cheating because the answer to a question such as “who is the main character?” may result in a different correct answer for each test, even though the knowledge being tested is the same. This principle can be used in mathematics where terms may be randomly generated with resulting solutions that test the underlying understanding of the user but may appear on its surface, thereby reducing the potential for cheating. Templated questions may be treated as having the same characteristics, since the variables within the question should not change the type or difficulty of the question.

The objects may be requested by different users. As described in the example of a teacher-user requesting an examination, teacher-users may generate assessment items. Similarly, a teacher-user may request a complete coursepack based on a set of requirements determined through selection. A student-user may also generate learning tools through a request object, such as practice problems or lectures to assist with learning. The system may automatically generate learning tools based on a conditional estimate of the user's characteristics such as proficiency or learning style. For example, if a user is poor in a subject area such as fractions, then the system may generate practice problems that include a higher distribution of fractions than other subject areas where the user may be more proficient. Similarly, the practice problems may be easier for areas where the user is deficient. This adaptivity allows content to be generated to suit the particular student's needs.

Once requested, a learning tool which conforms to the request object may be sent to one or more users. The user may be the student who requested the request object, or various requested learning tools satisfying the desired characteristics may be sent to the students studying in a particular course. The learning tools may be sent to the users in a variety of ways, such as displaying the generated objects on a user's computer screen, sending the generated objects to a user's email address or internal system messaging system or otherwise transferring the generated learning tools to the user.

Depending on the situation, the requested learning tools may be generated at the time they are requested or at some future time. For example, examination questions may be pre-generated by a professor who wishes to vet all question before distributing the exam to his students. At other times, examination questions may be generated simultaneously with an event, for example, where the student-user begins an examination. In some cases, the individual questions within a generated examination may be generated as the examination proceeds.

Also, each of the desired characteristics of a learning tool may be set by a user or anticipated by the system to adapt to the characteristics of the user. Some characteristics may be user selected while others may be automatically chosen by the system. For example, a student may desire the system to generate remedial learning tools that will optimally improve that particular student's proficiency in a subject area. The student-user may select a time limit, for the learning tool and ask the system to generate other parameters based on the particular user's characteristics. In another example, a professor-user may fix many of the desired characteristics for a high-stakes examination to ensure fairness. In some cases, a pre-existing subset of a plurality of learning tools, such as a chapter in a textbook may satisfy the distribution of desired characteristics of a learning tool, and in those circumstances, the learning tool may be re-published in an unchanged form.

We denote a request object by RQ^(rq)ε{RQ^(j)}_(j=1) ^(|RQ|) where 1≦rq≦|RQ|. In an embodiment, each resource generation request RQ^(rq) may have one or more of the following of fields described in Table 4. The characteristics of a request object will mirror the characteristics of a learning tool. Some features, such as locked and black-listed items do not have corresponding characteristics for learning tools, as these features act to specifically exclude or include specific learning tools or classes of learning tools.

TABLE 4 j Symbol Description of field j for RQ^(rq) 0 α₀(RQ^(rq), k) ∈ {RQ^(j)}_(j=1)|^(α) ¹ ^((RQ) ^(rq) ^()|) Recursive Structure: In an embodiment, we Request Segments recursively define a request object as an ordered sequence of other request objects. The base atom or smallest indivisible request is a request with at least one of the following conditions: 1. α₉(RQ^(rq), 1) = MIN({α₉(R^(j))}_(j=1) ^(|R|)), and 2. α₁₀(RQ^(rq)) = 1. 1 α₁(RQ^(rq), m, a) ∈ [0, 1] such that   ${\sum\limits_{m = 1}^{L}{\sum\limits_{d = 0}^{6}{\alpha_{1}\left( {{RQ}^{rq},m,a} \right)}}} = 1.$   LO Difficulty Distribution Ideal Learning Objectives: user's ideal distribution over LO-difficulty composition of the resource. In an embodiment, an ideal distribution over LO and difficulty may be described separately. i.e. α_(1a)(RQ^(rq), m) ∈ [0,1], such that   ${\sum\limits_{m = 1}^{L}{\alpha_{1a}\left( {{RQ}^{rq},m} \right)}} = {1\mspace{14mu} {and}}$   α_(1b) (RQ^(rq), d) ∈ [0, 1] such that   ${\sum\limits_{d = 0}^{6}{\alpha_{1b}\left( {{RQ}^{rq},d} \right)}} = 1.$   We can then set α₁(RQ^(rq), m, d) = α_(1a)(RQ^(rq), m)α_(1b)(RQ^(rq), d). In another embodiment, the user may set an ideal distribution unnormalized by describing a weight. In another embodiment, the user may set an ideal distribution over a learning objective grouping LOG with each distribution unnormalized by describing a weight. In a further embodiment, each LOG may have uniform weight incrementes to add uniformly unnormalized weight based on a button/key clicks/press for all learning objectives in a particular LOG. In a further embodiment, uniform weight is incremented based on elapsed time passed from initial button/key click/press and release. In a further embodiment, the system may provide the user with a graphical representation of the distribution, in the form of a histogram which is updated in real-time as the user makes changes to the distribution weights. In a further embodiment, user may updated the histogram itself on difficulty or LO. 2 α₂(RQ^(rq), m, a) ∈ [0, 1] such that   ${\sum\limits_{m = 1}^{L}{\sum\limits_{a = 0}^{10}{\alpha_{2}\left( {{RQ}^{rq},m,a} \right)}}} = 1.$   Ideal Quality Distribution Ideal Quality: In an embodiment, we may want to allow the user to set an ideal distribution over LO quality level. This may especially be desirable in high-stakes exam environments. In an embodiment, the user may describe an overall quality distribution over all LO (i.e. not for each LO). In an embodiment, the user may describe a minimum acceptance for expected quality level. 3 α₃(RQ^(rq), a) ∈ [0, 1] such that   ${\sum\limits_{a = 0}^{10}{\alpha_{3}\left( {{RQ}^{rq},a} \right)}} = 1.$   Teaching Quality Level Distribution Ideal Overall Teaching Quality: In an embodiment, the user may set an ideal distribution over teaching quality level. In an embodiment, the user may describe a minimum acceptance for expected quality level. 4 a₄(RQ^(rq), a) ∈ [0, 1] such that   ${\sum\limits_{a = 0}^{10}{\alpha_{4}\left( {{RQ}^{rq},a} \right)}} = 1.$   Communication Quality Level Distribution Ideal Overall Communication Quality: In an embodiment, the user may set an ideal distribution over communication quality level. In an embodiment, the user may describe a minimum acceptance for expected quality level. 5 α₅(RQ^(rq), a) ∈ [0, 1] such that   ${\sum\limits_{a = {- 3}}^{3}{\alpha_{5}\left( {{RQ}^{rq},a} \right)}} = 1.$   Motivation Distribution Ideal Extrinsic Motivation: In an embodiment, the user may set an ideal distribution over extrinsic motivation rating level. In an embodiment, the user may describe a minimum acceptance for expected level. 6 α₆(RQ^(rq), a) ∈ [0, 1] such that   ${\sum\limits_{a = 0}^{10}{\alpha_{6}\left( {{RQ}^{rq},a} \right)}} = 1.$   Popularity Distribution Ideal Popularity Rating: In an embodiment, the user may set an ideal distribution over popularity rating level. In an embodiment, user may describe a minimum acceptance for expected level. 7 α₇(RQ^(rq), a) ∈ [0, 1] Ideal Learning Style: In an embodiment, the such that user may set an ideal distribution over the α₇ (RQ^(rq), a = Yes) + presence of one or more of three learning style α₇(RQ^(rq), a = No) = 1. preferences. Visual Preference Distribution 8 α₈(RQ^(rq), a) ∈ [0, 1] such that α₈(RQ^(rq), a = Yes) + α₈(RQ^(rq), a = No) = 1. Auditory Preference Distribution 9 α₉(RQ^(rq), a) ∈ [0, 1] such that α₉(RQ^(rq), a = Yes) + α₉(RQ^(rq), a = No) = 1. Tactile/Kinesthetic(Preference Distribution 10 α₁₀(RQ^(rq), a) ∈ [0, l] Ideal Total Time: In an embodiment, the user such that may set an ideal total time. ${\sum\limits_{a = 0}^{TT}{\alpha_{10}\left( {{RQ}^{rq},a} \right)}} = 1$ Ideal Total Time Distribution 11 α₁₁(RQ^(rq), a) ∈ [0, 1] Number of Segments: In an embodiment, the such that user may set an ideal number of requests. ${{\sum\limits_{a = 0}^{NN}{\alpha_{11}\left( {{RQ}^{rq},a} \right)}} = 1},{where}$ NN is set to a large enough number (e.g. 10,000). Number of Segments Distribution 12 α₁₂(RQ^(rq)) ∈ {U^(j)}_(j=1) ^(|U|) Assignment: Assigns student groups to which Assignment this resource request object is published, shared or linked. 13 α₁₃(RQ^(rq), k) ∈  

, where Ideal Posting Schedule: the user may set 0 ≦ k ≦ |α₀(RQ^(rq))|. his/her ideal posting time α₁₃(R^(r), k) for user or Ideal Posting Schedule user group α₁₂(RQ^(rq)) and for the kth request segment. In another embodiment, the system may store, in addition or in lieu of date/time, the offsets from segment k − 1's start time. In an embodiment, the user may be given the flexibility to described time offets from segment k − 1's end time. 14 α₁₄(RQ^(rq), k) ∈  

, where Ideal Due Date & Time: the user may set 0 ≦ k ≦ |α₀(RQ^(rq))|. his/her ideal due date & time α₁₄(R^(r), k) for Due Date & Time user or user group α₁₂(RQ^(rq)) and for the kth request segment. In another embodiment, the system may store, in addition or in lieu of date/time, the offsets from segment k − 1's start time. In an embodiment, the user may be given the flexibility to described time offets from segment k − 1's end time. 15 α₁₅(RQ^(rq)) ∈  

Ideal Average Workload: In an embodiment, Ideal Average Workload the user may describe the ideal average workload measured. 16 α₁₆(RQ^(rq)) ∈  

Average Learning Rate: In an embodiment, the Ideal Average Learning Rate: user may describe the ideal average learning rate measured. Course Pace: In an embodiment, the system can report on metrics such as the course pace or even chart the change in course pace from week to week, topic to topic. 17 α₁₇(RQ^(rq); k) ∈  

Posting Schedule Tolerance: In an Posting Schedule Tolerance: embodiment, the user may set an allowable tolerance level for scheduling resources posting, where α₁₇(RQ^(rq), k) = 0 means that the kth request segment will be scheduled on α₁₇(RQ^(rq), k). In another embodiment, we further reserve α₁₇(RQ^(rq), k) = −1 to mean that the kth request segment will be posted after or at the same time as the (k − 1)th segment. 18 α₁₈(RQ^(rq), k) ∈  

Due Date & Time Tolerance: In an Due Date & Time Tolerance embodiment, the user may set an allowable tolerance level for scheduling due dates, where α₁₈(RQ^(rq), k) = 0 means that the kth request segment will be due on α₁₈(RQ^(rq), k) . In another embodiment, we further reserve α₁₈(RQ^(rq), k) = −1 to mean that the kth request segment will be due after or at the same time as the (k − 1)th segment. 19 α₁₉(RQ^(rq)) ∈  

Workload Tolerance: In an embodiment, the Workload Tolerance user may set an allowable workload tolerance level when scheduling resources. LK α_(LK) (RQ^(rq), k) ∈ {Yes, No} Locked Resource(s): In an embodiment, the user may lock into a resource slot. BL α_(BL)(RQ^(rq), j) ∈ {Yes, No} BlackListed Resource(s): In an embodiment, where 1 ≦ j ≦ |R|. the user may blacklist certain resources for any slot k. Yes indicates that resource R^(j) will not be included in this any of slot k where 1 ≦ k ≦ |α₁(RQ^(rq))|. τ α_(τ)(RQ^(rq), c) ∈ [0, 1] such that   ${\sum\limits_{c = 1}^{20}{\alpha_{\tau}\left( {{RQ}^{rq},c} \right)}} = 1$ Resource Type/Format Distribution: In an embodiment, users may request format using distribution over a subset of type and format such as one or more of the format types described in the chart below. Resource Type Distribution c Type Category 1 Question 2 Learning 3 lab question 4 eWorksheet 5 algorithmic/template 6 accessible for visually impaired (WAI- ARIA 1.0 standards for screen readers). 7 Interactive/educational games 8 eBook 9 eLecture 10 interactive 11 training session 12 virtual tutoring 13 Homework 14 full solution 15 lecture notes 16 algorithmic/template 17 accessible for visually impaired (WAI- ARIA 1.0 standards for screen readers). 18 Courseware: (defined below) 19 Course Template: (defined below)

Courseware or Study Plan Template

In an embodiment, we define a course template as a scheduled resource generation request object RQ^(rq) with the following properties for its attributes:

-   -   1. α₁₁(RQ^(rq))>1 or α₁₁(RQ^(rq))=NULL (typically         α₁₁(RQ^(rq))>50),     -   2. there exists a k, where 1≦k≦α₁₁(RQ^(rq)) such that         α_(τ)(α₀(RQ^(rq), k), 1)=0 i.e. there exist at least one segment         where there is no chance of it being a question, which in turns         means this is NOT an assessment, and     -   3. there exists a j, k, where 1≦j, k≦α₁₁(RQ^(rq)), and c, d,         where 1≦c<d≦20 such that α_(τ)(α₀(RQ^(rq), j),         c)=α_(τ)(α₀(RQ^(rq), k), d)=1 i.e. there exist at least two         segments with different types.

Typically a study plan is on a smaller time scale and course template on a larger time scale.

Another commonly used term is Learning Objective Maps or Course Blueprinting. Entire textbooks or courseware can be generated due to the flexibility of both the resource and resource request models and the system's utilization of the power of non-linear filtering to estimate the most hidden user and resource attributes (see ESTIMATION PROBLEM and ACTION STRATEGY section below).

In one preferred embodiment, courseware may be customized to an institution's course blueprint. A user may create a course blueprint via command line interface, file upload or graphical interface. Courseware may be produced as follows:

-   -   1. create container object RQ^(rq),     -   2. define the set of learning objectives along with the starting         and ending proficiency by creating another resource generation         request object RQ^(rq) and storing them into a segment k in         container object RQ^(rq). Note: each segment represents one         learning objective.     -   3. set ideal total time for each segment. This is a measure of         the amount of time you want a student to “learn” the associated         learning objective,     -   4. for each segment, the user can set Ideal Posting Schedule         α₁₃(RQ^(rq), k)ε         , α₁₄(RQ^(rq), k)ε         Due Date & Time, α₁₇(RQ^(rq), k)ε         Posting Schedule Tolerance, α₁₈(RQ^(rq), k)ε         Due Date & Time Tolerance. The posting schedule may be thought         as the start of the learning objective and due date as the end.     -   5. set α₁₅(R^(r))ε         Ideal Average Workload , and α₁₉(RQ^(rq))ε         Workload Tolerance     -   6. set any other distributions such as formats, locked         resources, blacklisting resources     -   7. set ε=0=δ in the system's resource generation tool and click         on generate.     -   8. the system returns a customized courseware pack in the format         requested through course-blueprint modeled.     -   9. after years of refinement through feedback and research, one         may wish to publish a refined learning objective ordering and         construct new learning objective dependencies (pre-requisite,         co-requisites) by setting the posting and due date attributes         for each segment,     -   10. in another embodiment, one may wish to sell or publish a         highly refined course blueprint or do further analysis on the         refined blueprint to determine what properties of the blueprint         make it successful.

System Traffic Session

In general the system traffic is a hierarchal model where at the top level we describe user consumption or interaction of resources using the system tools and the lowest level the description is that at the level of the network (i.e. TCP/IP connection session). In this description we focus our attention to the higher levels of session traffic and define system traffic session object as S^(s)ε{S^(j)}_(j=1) ^(|S|).

TABLE 5 j Symbol Description of field j for S^(s) 0 α₀(S^(s), k) ∈ {S^(j)}_(j=1) ^(|S|) Recursive Structure: In an embodiment, a Recursive Structure session may be recursively defined as an ordered sequence of other sessions. The base atom or smallest indivisible unit is a TCP/IP network session. It is intended that the sessions are sorted according to the session starting time i.e. α_(start)(S^(s), 1) < α_(start)(S^(s), 2) < α_(start)(S^(s), 3) and so forth. 1 α₁(S^(s)) ∈ {U^(j)}_(j=1) ^(|U|) User Object Reference: User Reference 2 α₂(S^(s)) ∈ System Feature/Tool Set System Tool: In an embodiment, the System Tool system may store which system tool the users participating in this session have direct access to. For example: α₂(S^(s)) = eBook_reader and α₁(S^(s)] = U⁴⁵ means user with id 45 is has direct access to (on screen) to the system's eBook reader tool. 3 α₃(S^(s)) ∈ {R^(j)}_(j=1) ^(|R|) Session Resource: In an embodiment, the Session Resource system may store which resource the users participating in this session have direct access to or have loaded through using system tool α₂(S^(s)). 4 α₄(S^(s)) ∈ {Learning, Answering, Authoring} User Consumption Activity: In an User Consumption Activity Type embodiment, user activity type may be represented. 5 α₅(S^(s)) ∈ [0, 1] System Return and Response: In an Return and Response Code embodiment, return or response code for tool α₂(S^(s)) may be represented. Setting α₅(S^(s)) ≠ NULL will terminate this session (i.e. set α_(end)(S^(s)) ≠ NULL). start α_(start)(S^(s)) ∈ 

Start Time of the session. In an Start Time embodiment, we define the start time as the time of this session S^(s) creation. end α_(end)(S^(s)) ∈ 

End Time of the session. In an End Time embodiment, end time is defined as the earlier of: 1. setting α_(end)(S^(s)) ≠ NULL, and 2. inactivity timeout (i.e. lacking a termination acknowledgement of a session due to the nature of the web).

Fitness Functions

In order to generate one or more learning tools which satisfy a plurality of characteristics of a requested distribution of desired characteristics a fitness function may be used to compare the characteristics of the requested learning tool with the distribution of desired characteristics. In an embodiment, the fitness function is defined between the system's estimate of the resource characteristics denoted α_(F)(R^(r)) for resource R^(r) and a resource generation request RQ^(rq).

In general, the fitness function quantifies attribute by attribute the difference (or equivalently divergence) between α_(F)(R^(r)) and RQ^(rq). For clarity, the smaller the score the “closer” α_(F)(R^(r)) is to RQ^(rq).

We relabel x=α_(F)(R^(r)) is to y=RQ^(rq) and define a recursive fitness function for all resource segments.

$\left. {{\Phi \left( {x,y} \right)} = {\sum\limits_{k = 0}^{K}{\gamma^{k}{\Phi\left\lbrack {{\alpha_{0}\left( {x,k} \right)},{\alpha_{0}\left( {y,k} \right)}} \right)}}}} \right\rbrack,{{{if}\mspace{14mu} K} > 1},{and}$ Φ(x, y) = φ(x, y), otherwise,

where γ^(k)≧0 is the weight for segment k and k=0 represents the overall top container level object.

These weights if zero nullify the corresponding subscore for segment k and if γ^(k)>0 serves as an importance or scaling factor.

In an embodiment, we further describe φ by following:

φ(x, y)=Σ_(i)δ^(i)φ^(i)(x, y) where δ^(i) is an importance or scaling weight for attribute i.

In an embodiment, we use, for attributes 1≦i≦11 and i=τ, a variant of the Kullback-Leibler divergence to measure difference between distributions x and y,

${\varphi^{i}\left( {x,y} \right)} = {\sum\limits_{j}{\varphi^{i}\left( {x,y,j} \right)}}$ and ${\varphi^{i}\left( {x,y,j} \right)} = \left\{ \begin{matrix} {{{\alpha_{i}\left( {x,j} \right)} \times {\log \left( \frac{\alpha_{i}\left( {x,j} \right)}{{\alpha_{i}\left( {y,j} \right)}0.001} \right)}},} & {{{if}\mspace{14mu} {\alpha_{i}\left( {x,j} \right)}} \neq 0} \\ {\varphi_{i},} & {{otherwise}.} \end{matrix} \right.$

In another embodiment, other measures can be used such as the Itakura-Saito distance.

In an embodiment, we further describe the comparison between two scheduled resource generation request objects x, yε{RQ^(j)}_(j=1) ^(|α) ¹ ^((RQ) ^(rq) ^()|). In this case, for attributes 13≦i≦19 we add to the overall weighted summation in [0098]

φ^(i)(x,y)=|α_(i)(x)−α_(i)(y)|.

In an embodiment, we can present a method for a user to compare fitness of two course templates and any resource. For example: if one wishes to answer the following, “How close does this eBook follow my course blueprint/template?” the fitness function along with the systems filter estimates can answer such questions.

In an embodiment, one can further compare exams to a course outline (a course template without scheduling), compare any two resources such as a series of homework questions and an eBook reading schedule.

In determining the similarity between a requested learning tool and the learning generated by the learning system, the fitness function may place a higher emphasis on features such as fit or fairness. Fairness may measure similarity in difficulty between two or more generated examinations. For high stakes examinations, the system should place heavy weight on fairness so that each student is evaluated on the basis of exams of the same difficulty. In other situations, such as when the system may generate educations items such as eBooks, it is more important for all topic areas to be covered, and so there may be stronger weight on fit to ensure there are no topics are unrepresented. The scoring function may be used to encourage spread and encourage expected results, for example, by penalizing for a particular characteristic zero values in α_(F)(R^(r)) for a candidate resource R^(r) when RQ^(rq) defined ideals with non-zero weight on the same characteristic.

Resource Generation

Resource Generation Object

The system and method allow the creation, auto-generating, representation and delivery of at least one of the following:

-   -   an arbitrary number of assessments,     -   an arbitrary number of homework assignments,     -   a entire coursepack randomly generated based on a course         template,     -   an arbitrary number of remedial study plans,     -   a lecture series customized to complement an instructors course         schedule, etc . . .

In an embodiment, one may randomly generate a set of assessment item (i.e. exams, homework, quizzes, labs, etc . . . ) each, unique with controllable features on difficulty and length “equivalence” definable user inputs describing his/her ideal set of assessment.

For example: an instructor may request a weekly homework to be auto-generated with 10 question slots randomly generated with a specified LO distribution taken from the current week's lecture notes and eBook readings, with difficulty level 3 on average and total assessment length 90 mins.

Constraint Solving Problem

In an embodiment, the system allows users to define his/her ideal characteristics of the end result by creation of a resource generation request object RQ^(rq) and requesting to the system to generate N unique segment assignment for R^(r), where 1≦r≦N such that:

ε≦Φ(RQ ^(rq) ,R ^(r))≦ε+δ,

where Nε[1, N], N is the theoretical maximum or total number of solutions to the problem, 1≦n≦N, ε≧0 is an acceptance threshold parameter for closeness (i.e. good enough fit vs. optimal or best fit parameters as ε→0), and δ≧0 is a threshold parameter for controlling the degree of fairness between any two assessments or acts as a threshold acceptance parameter for closeness when ε=0 and δ>0.

Resource Generation Process Overview

In an embodiment:

-   -   1. a user creates a resource generation request object using the         system's resource generation graphical interface (GUI) to create         a resource generation request object,         -   In another embodiment, set of parameters can be provided to             the system from the user via command line.         -   In another embodiment, the user uploads a parameter file             with all the information needed to create a resource             generation request object.         -   In another embodiment, system creates the resource             generation request object based on other information             provided by the system's filter (see SECTION ACTION             STRATEGIES).         -   In one preferred embodiment, before any system action is             performed, the system pre-filters all zero weighted             resources from the database by creating a database view to             excluded such resources from resource pool             R^(r)ε{R^(j)}_(j=1) ^(|R|) thereby reducing the total             resource pool size (i.e. the search space).         -   These include the α_(BL)(RQ^(rq), j)=Yes (Blacklisted items)             and resources that have non zero weight.     -   2. A user may want to set the following parameters ε, δ         (optional).     -   3. In an embodiment, the system we solve this by a process of         solving for one assignment at a time in an iterative manner. The         iterative process goes as follows:         -   1. Initialize counter n=1.         -   2. While n<N do the following:             -   a. Solve for R^(r) such that ε≦Φ(RQ^(rq), R^(r))≦ε+δ                 (see next section for an example embodiment).             -   b. Increment counter n=n+1.     -   4. In another embodiment the option is given to the user to         allow adjustments of ε, δ and/or user's “ideal” characterization         of RQ^(rq).     -   5. In an embodiment, the system uses a clustering algorithm such         as the QT clustering algorithm for suggestions of ε, δ changes.     -   6. In an embodiment, the clustering along with all the sample         points are graphically displayed to the user for clarity.     -   7. In an embodiment, random algorithms are further used to solve         the reverse question on what changes RQ^(rq) are needed to         satisfy newly suggested ε, δ. A different filter can be used to         answer this question, but other random algorithms such as Monte         Carlo methods can also be used.

Genetic Algorithms

In an embodiment, we utilize a random algorithm as a method for finding one such assignment.

For example: One such random algorithm is a genetic algorithm comprising a preparation phase, then an assignment initialization phase, and then followed by iterations of a series of steps, each iteration comprising the following steps (the selection and reproduction phase):

-   -   Exit-Evaluation, wherein the population of chromosomes are         sorted in increasing order of their scores,     -   Elitism, wherein an elitism parameter specifies the number of         chromosomes we want to keep in the new population from the         current population,     -   Cross Over, wherein for each remaining chromosomes that are not         kept in the new population pick two existing chromosomes         randomly as parents and randomly select a cross-over point and         generate a new chromosome,     -   Exit-Evaluation, wherein the new population is set as the         current population sorted in increasing order of their scores,         and     -   Mutation, wherein new chromosomes are generated based on a         mutation chance, until a termination criteria defined by the         condition where the total number of selection and reproduction         phase iterations exceeds threshold Z.

Estimation Problem

The following section is broken into several parts. In the first part, some background discussion of the relevant non-linear filter theory and the overall estimation process is provided. In the second part, three signal and observation model pairs, the architecture and model classes are discussed.

Filtering Background

Simply put, the problem is to estimate some object (herein called the signal) given a series of distorted, corrupted, partial data observed information concerning the signal (herein called the observation). The signal has some state that contains all the pertinent information that one wishes to know.

For example, in order to provide student learning resources (e.g. remedial homework, readings, lectures, problem sets, forums, tutoring/review sessions, etc . . . ), the learner's strengths and root deficiencies and learning style (e.g. visual vs. auditory vs. kinesthetic/tactile) would be examples of what could be contained within the signal state.

The change of the learner's state over time (or the learner's state's evolution) typically contains some sort of random dynamics. This randomness is usually included in the model to handle the uncertainty concerning what development (observable or not) might occur next, due to imperfect knowledge.

For instance, the development of a learner's knowledge and skills currently taking place is not exactly known, and thus the change in the state of the signal may be modeled with the appropriate randomness involved.

Within an eLearning/eAssessment/ePublishing/eTutoring (“Platform”) environment, various types of traffic data generated from a learner interacting with the Platform can be observed (“observation”). This Platform traffic data can be used in an attempt to observe and/or infer the state of the signal; however such traffic generated can only give probabilistic information of the signal's state since the information is partial and distorted by some sort of noise (e.g. a leaner guessing on a multiple choice question).

In order for a filter to be able to handle these types of problems, a coupled mathematical model of the signal and observation is required. The mathematical model for the signal captures the key dynamics that govern the evolution of the signal state (e.g. the evolution of the signal state in the positive direction (i.e. knowledge acquisition) for a given learning objective can be seen as the activity of learning). The observation needs to be modeled in terms of a sensor function for a given observation (i.e. what information the traffic data derives from the signal based on its state) as well as the noise that corrupts the data.

Depending on the type of filter to be used, these models (signal and observation pair) must meet certain mathematical conditions. These conditions for today's most advanced filters are fairly general, meaning that nearly every situation of importance can be effectively modeled.

Based on the mathematical model for the signal and observation, a filter will output information based on the probability distribution of the signal state given the sequence of observations taken up until that point (sometimes called the ‘back observations’). The probability distribution is usually referred to as the filter's conditional probability, given the back observations (or conditional estimate). Typically the information provided by the filter is the signal state itself, although information which can be derived mathematically from the signal's state can also be presented. The estimate is optimal in the sense that it minimizes the error between the estimate of the signal state and the actual signal state in a least squares sense, given the observation information.

The filter can provide the optimal probability of the signal state being within a certain range, which can be extremely useful in determining the best course of action to take in many circumstances.

For example, if the conditional distribution for a user is highly localized on the “low mastery level” for a particular LO (i.e. proficiency level 1 or 2) and is highly localized on the kinesthetic/tactile learning style (i.e. learns by doing or trial-and-error or problem solving type), then the optimal action strategy may create an individualized remedial solution by compiling for the user a set of interactive practice problems with full detailed solutions with starting with difficulty level 2 and 3.

However, if the conditional distribution is spread out over a larger region of space, then the optimal action strategy may wish to either wait until the next homework or quiz to occur to gain more information or suggest the learner to try out the adaptive assessment feature (described in the next section ACTION STRATEGIES) to help localize on the signal's state.

What can Filtering do?

FIG. 9 shows a conceptual drawing showing a method of filtering. Random data is detected at 902. This means extracting meaningful information 904 from random/partial/noisy/corrupt data in real time by detecting and tracking the data at 904 and then performing optimal decisions 908 based on the conditional estimates. Based on the optimal decisions, a most desired action may be put into action at 910. Filtering can essentially perform three main functions: detection, tracking and prediction. Each function is based on the conditional distributions calculated by the filter. A filtering solution typically can perform all of these tasks, although it usually does not need to perform all these tasks at the same point in time. For example, a filter typically detects a signal before it attempts to track it.

Detection involves identifying and characterizing a signal and is typically the initial task that a filter performs (i.e. such as initial (or a priori) knowledge, motivation, intelligence and attitudes).

Once detected, the tracking mode involves estimating the state of a signal and updating it in real time as new observation data arrives. Tracking mode could involve the tracking of a signal's learning. By updating in real-time, the system may conserve system resources, because other methods of tracking data such as data-mining may consume increasingly more data as time increases.

Prediction involves estimating the future state of a signal, given the current conditional distribution of a filter and a course blueprint (i.e. course outline and scheduled learning activities). Prediction is very useful in many areas, such as giving early feedback to instructors or course administrator before it is too late (i.e. the final exam).

In general, we want to optimally estimate both the user's characteristics and resource characteristics. Herein we describe the signal/observation model pair.

Signal Model

Signal State and Parameter Estimation

In general, the signal is composed of users, resources and parameters that govern both user and resource signal dynamics. The signal may represent characteristics of the user and characteristics of the learning tools.

In an embodiment, the signal of a user is modeled as a collection of characteristics representing a learner's level of LO proficiency (mastery), interpersonal skills (e.g. teaching quality), motivation, learning style & learning type preference, overall participation, work ethic, attitude, personality and any parameters that need to be estimated to evolve the signal (SEE USER OBJECT above). The signal of a resource is modeled as a collection of characteristics representing a resource object or learning tool. Note that the learning tool can be either an educational item or an assessment item (SEE RESOURCE OBJECT above).

Typically, the signal state is evolved by internally driven dynamics.

In an embodiment, the signal state of a user is further evolved by external session events. For example a leaner-user consuming and interacting with a section of eBook resource surely has some effect (typically positive) to his/her proficiency for the LOs covered in the section. These external session events may drive the user behavior. User behavior is data collected about a user that is not the answers to questions (i.e. question item response) or other assessment items. Observations of user behavior may be obtained through user interaction with the computerized learning system.

Another example: a user taking an exam creates session objects other than just the submission of his or her answers. In an embodiment, the system evolves the state of the user and resource by external session events generated during an assessment (e.g. traffic generated during exam (or any assessment) that is not just the answers to questions presented).

Below we first describe the signal dynamics of a user then followed by a description of the resource signal dynamics.

Signal Evolution for User Characteristics

Signal evolution describes the dynamics which may be inherent to the signal (e.g. in the negative direction (knowledge degradation) in the case of long periods of inactivity), or it may come from external influences directly observed by the learning tools consumption traffic (e.g. in the positive direction i.e. “learning” or “acquiring knowledge or LO competency” when an user watches an online lecture, participates in a blog about a homework assignment question, joins a virtual tutoring session, or simply is reading and annotating an eBook).

We first describe the internally driven signal dynamics:

Markov Chain model: In preferred embodiment, we may wish to artificially add randomness. For example: one way of doing this is to use a Markov Chain model and describe transition probabilities for going from level j+1 to j for attribute α_(i) and in the reverse direction. For example: in the case of proficiency we can define the probabilities:

P[α ₁(X,m)_(t) _(k) =j|α ₁(X,m)_(t) _(k−1) =j+1]=p ⁺, and

P[α ₁(X,m)_(t) _(k) =j+1|α₁(X,m)_(t) _(k−1) =j]=p ⁻

for each LO 1≦m≦|L| and jε{0, 1, . . . , 6}. Further we may wish to have p⁺ and p⁻ depend on j. An example of where this may be useful is to differentiate randomness in lower levels of proficiency j=0, 1, 2 or 3 as compared to the higher levels where j=4, 5 or 6.

Proficiency (Knowledge) and Intrinsic Motivation Degradation: In another embodiment, we may wish to add to the model the degradation of proficiency and motivation (i.e. α₁(X, m) and α₆(X)) by

P[α ₁(X,m)_(t) _(k) =j+1|α₁(X,m)_(t) _(k−1) =j] and P[α ₆(X)_(t) _(k) =j+1|α₆(X)_(t) _(k−1) =j].

Continuous-time Markov Chain: In another embodiment, we may wish to model the state transitions using Continuous-time Markov Chain (or Semi-Markov Chain) model. For example:

${{P\left\lbrack {{\alpha_{1}\left( {X,m} \right)}_{t_{k}} = {\left. {j + n} \middle| {\alpha_{1}\left( {X,m} \right)}_{t_{k - 1}} \right. = j}} \right\rbrack} = \frac{{\exp \left( {{- \lambda}\; \Delta \; t} \right)}\left( {\lambda \; \Delta \; t} \right)^{n}}{n!}},$

where Δt=t_(k)−t_(k−1).

It is often thought that soft skills are too subtle and complex to be captured or estimated by technology. However, within the system much more information is available. Learning traffic observed may be used to evolve the signal estimate. For example, the user's interaction with education items, such as reading eBooks or watching online lectures may be modeled in the signal model. During assessment sessions, the system may include assessment behavior such as the time to complete a question, the order in which questions are answered or changes made to a response during an examination as data to be used when updating the signal model

User Evolution Driven by Learning Activity Session Traffic

Learning Activity Sessions driving user evolution: In an embodiment, the system receives a session S^(s) of type learning activity (i.e. not an assessment) drives the signal state.

We may wish to update the user α₁(S^(s))ε{U^(j)}_(j−1) ^(|U|) state by the adjusting the appropriate rate parameters λ during the learning session duration (ie. α_(end)(S^(s))−α_(start)(S^(s))) base on the session completion level α₅(S^(s)), and the system's estimates for attributes of the resource consumed α₃(S^(s)) (i.e. α_(i)(α₃(S^(s)))).

A conditional estimate of a user signal representing a characteristic of a user may be updated based on these types of learning activity observations through the user evolution model.

User Evolution Driven by Scheduled Future Events

Typical assessment systems are stand alone products therefore do not incorporate a user's long term history (i.e. do not track proficiency, learning, etc . . . ). In fact, students are known to “cram” for a quiz, test or high-stakes exam and such cramming activities are known to store newly acquired temporary knowledge into short term memory. Decay of knowledge from short term memory is typically swift (if without reinforcement).

In an embodiment, one may wish to compensate for this phenomenon by muting the proficiency transitions and the increase rates for short term motivation level.

For example, in an embodiment we decrease rates for proficiency transitions and increase rates in motivation transitions when near a scheduled high-stakes event (e.g. final or midterm exam).

User Evolution Driven by Assessment Session Traffic

A user's state may be driven by external session events generated during an assessment (e.g. traffic generated during exam (or any assessment) that is not just the answers to questions presented). In an embodiment, this may be accomplished by adjusting appropriate transition rates λ.

For example, in an embodiment, transition rates λ for a user's proficiency level may be based on the following user behavior information either available directly from the session object S^(s) or derived through the analysis of the session segments:

-   -   question jumping timing patterns: of going from one question to         another before submitting final answers. For example this may be         incorporated by an increase in rates that correspond to λ that         govern transitions for user proficiency α₁(U^(u), m).     -   the time taken to answer (i.e. submit answer) after question is         presented to user. For example this may be incorporated by an         increase in rates that correspond to proficiency/knowledge         degradation.     -   in the situation where a question is encoded to allow for         multiple attempts; the entire attempts history may be         incorporated by an increase of rates λ that govern transitions         for user proficiency α₁(U^(u), m) and learning effectiveness         α₂(U^(u), m, a, b), In particular, the learning objective set         representing problem solving should increase and in the event         where an answer is correct after several attempts. Of course         this works especially well in question items that are machine         graded e.g. an expression or numerical type question.     -   user's attempts not submitted, i.e. user's answers that are not         submitted as final answer may be used to an increase appropriate         in rates λ that govern transitions for user proficiency         α₁(U^(u), m).

In an embodiment, one may wish to evaluate more than just proficiency and knowledge of learning objectives; one may wish to add the possibility for direct learning in an assessment. For example after answer is submitted, the system may show to the user the full solution for that answer. This especially works well in one-by-one adaptive assessment (SEE section ACTION STRATEGY below).

In an embodiment, one may wish to have the identity estimated using a filter. This is especially important in a high stakes exam. This may be accomplished by comparing biometric traffic profile trained from low stakes activity of the user's interaction with the system (i.e. “ground” truth) and using a non-linear filter to estimate whether or not a high stakes session activity traffic is more likely generated by a different user or simply just an anomaly (e.g. user's nervousness). In this case, we would need to add to the attributes of a user U^(u). If the user signal does not correspond to a conditional estimate of the identity of the user, then a report may be generated that includes a notice that the conditional estimate of the identity of the user for a current session does not correspond to a conditional estimate of the identity of the user for a previous session. In this case, a proctor or the course instructor may need to be notified.

TABLE 6 10 α₁₀(U^(u)) ∈ Φ Biometric Traffic Profile: In an embodiment, one User Biometric may wish to add to the state space information Traffic about the user's biometrics for his/her normal traffic patterns. For example, this may be modeled as a ρ-step covariances matrix for at least one of keystroke and mouse events for each the system's feature/tools (“System Tool/Feature Set”) (e.g. system login, scientific rich text editor, answer input, annotation, message, forum . . .).

Other External Session Traffic Driving User Evolution

In an embodiment one may with to have other user characteristics evolve based on session traffic. These include (but not limited to):

-   -   Teaching Skill Level α₃(U^(u)) based on the level of observing         tutoring traffic between users,     -   Communication Skill Level α₄(U^(u)) based on frequency and         amounts of communication related data in: content and technical         support, annotation, forum, messaging, document creation and         other similar session traffic that require communication skills,         and     -   Intrinsic Motivation α₆(U^(u)) based on technical support and         annotation session traffic.

For Signal Evolution for Resource Characteristics:

Degradation: Since old resources do degenerate in effectiveness, popularity, and motivation levels (i.e. get dated by generational and/or culturally differences over time), in an embodiment, we may want to degrade (slowly) these attributes by increasing the appropriate rates λ.

Resource Evolution Driven by Authoring/Editing Session Traffic

In an embodiment, external session events such as an instructor or author editing a resource may drive resource dynamics (typically in a positive way). For example the effect of a resources editing session traffic may be captured by adjusting appropriate rates λ that govern the resources transitions for at least one of: Proficiency Transition Quality, Teaching Quality Level, Communication Quality Level (English typo and rewording edits) and Extrinsic Motivation Rating.

Resource Evolution Driven by Learning Activity Session Traffic

In an embodiment, external session events such as a student or learner user interacting with a learning resource may drive resource state dynamics. For example the effect of learning activity session traffic to a resources state may be captured in the adjustment of appropriate rates λ that govern a resource's transitions for at least one of: Proficiency Transition Quality, Teaching Quality Level, Communication Quality Level, and Extrinsic Motivation Rating.

For example users interacting with a resource may annotate the resource and publish his/her annotations so that others may benefit. In an embodiment, a user may start a blog, forum thread or simply a “conversation” within the system. For example a user starts a public virtual conversation on a chapter, section or even paragraph of an eBook. Such activities in a sense “evolves” the original eBook in a positive way. The degree of adjustment for of the appropriate rates λ may further be dependent on the authors of such annotations, forum entries or blogs linked to the resource.

Complete Signal Model Description

Although the system and method are described using a single filter applied to both the users and resources, the filter may also be applied to each of the users and resources separately. By applying an independent filter, information contained in the user signal model may be used to estimate the signal model of a resource and information contained in the resource signal model may be used to estimate the user signal model.

By using two separate filters on the resource and signal models, the system may apply a filter on the resource model by extracting data from the application of a historical filter of the user model. That is, by historically smoothing the generated information from the user filter, the system may more accurately estimate information for the resource model. For example, if a student-user answered a question incorrectly at time t_(k) but the optimal tracker shows that the student was likely to have been at a low proficiency at the time t_(k) then that additional knowledge may be applied when considering the difficult of the resource. By applying historical smoothing, the system utilizes the maximum amount of data. By using historical smoothing, more accurate signal models may be generated. Historical modeling may be used to determine other characteristics of the user other than simply proficiency, such as, for example, motivation, preferred learning environment and other characteristics.

The system and method may model signals relating both to educational items and assessment items. By estimating characteristics of students, educational items and assessment items, the system and method may not only have better estimates of the student's knowledge and ability, but also information about how a student actually learns and which educational and assessment items are effective. This feedback of both educational items and assessment items allow the system or course administrator (e.g. instructors) to adjust the content of course materials and assessment items either manually or through new definitions of a course blueprint. Course resources and ordering of said resources may vary over time as new teaching tools and assessment tools are shown to improve key characteristics such as motivation and proficiency of a student, but moreover, the system may adapt the course material for the particular needs of individual students.

Complete Signal Model Description

The complete signal with all parameters is composed of the all users (U), resources (R), model parameters (P):

${X_{t} = \left\lbrack {\begin{pmatrix} U_{t}^{1} \\ U_{t}^{2} \\ \vdots \\ U_{t}^{U} \end{pmatrix},\begin{pmatrix} R_{t}^{1} \\ R_{t}^{2} \\ \vdots \\ R_{t}^{R} \end{pmatrix},P} \right\rbrack},$

where there are a total of |U| users and |R| resources in the system.

In an embodiment, we decouple all users and resources and describe the signal per user and per resource. i.e. X_(t) ^(U) ^(i) =[U_(t) ^(i), P] and X_(t) ^(R) ^(j) =[R_(t) ^(j), P].

Observation Model Description

The system and method relates to analyzing observations obtained from a measurement device to obtain information about a signal of interest.

Typically, the observation model is comprised of a series of sessions of type answering (i.e. α₄(S^(s))=Answering).

The assessment session object with u=α₁(S^(s))ε{U^(j)}_(j=1) ^(|U|), r=α₃(S^(s))ε{R^(j)}_(j=1) ^(|R|), α_(r)(α₃(S^(s)), 21)=Yes and α_(r)(α₃(S^(s)), 13)=Yes means that the session is of type assessment question and user u answering a question correctly (i.e. full marks) at time t_(k) can be denoted by Y_(t) _(k) =α₅(S^(s), grade)=1.

Assessment observation typically “observe” the user's ability or proficiency on a LO which are typically information, facts, concepts, figures, ideas or principles, and highly dependent on memory and recall.

The probability of observing Y_(t) _(k) =1 is based on the state of the signal. Specifically, both the user and resource u_(t) _(k) and r_(t) _(k) .

In an embodiment, we use the classical question item response function. i.e. given u_(t) _(k) and r_(t) _(k) , we describe the probability of observing the response Y_(t) _(k) =1 as:

${P\left( {{Y_{t_{k}} = \left. 1 \middle| u_{t_{k}} \right.},r_{t_{k}}} \right)} = {\sum\limits_{l = 1}^{L}{{\Phi \left( {u_{t_{k}},r_{t_{k}},l} \right)} \times {A\left( {r_{t_{k}},l} \right)}}}$ where ${\Phi \left( {u_{t_{k}},r_{t_{k}},l} \right)} = {c + \frac{1 - c}{1 + {\exp \left( {- {a\left( {\theta - b} \right)}} \right)}}}$ and ${A\left( {r_{t_{k}},l} \right)} = \frac{\alpha_{2}\left( {r_{t_{k}},l} \right)}{\sum\limits_{j = 1}^{L}{\alpha_{2}\left( {r_{t_{k}},j} \right)}}$ and

User Proficiency Level: θ=α₁(u_(t) _(k) , l),

Question Difficulty Level: b=α₁(r_(t) _(k) , l), and

Resource Quality Level: c=α₂(r_(t) _(k) , l).

In an embodiment, we include more signal information to use in the question item response observation model. These included the following signal attributes:

-   -   Estimated total time for resource and actual time spent:         α₁₀(R^(r), i) and α_(end)(S^(s))−α_(start)(S^(s)). Illustrative         scenario: difference in proficiency of a student answering         question in 10 secs. and another student 3 mins. for the same         question. In the case for updating the question resource: if a         thousand students took over 10 minutes for a question that         initially was set to 5 minutes in length.

The Support Session Traffic Observations

Attributes for users and resources can be observed and assessed in both technical and content support session traffic. Although this involves a human element, in one preferred embodiment, the system may allow the support user to adjust at least one of: user or resource attribute estimates based on his/her opinion. The degree of adjustment allowed may be a function of the support user's role and subject matter expertise.

In an embodiment, such adjustment will need to be verified by other roles such as: instructor/teacher or original author.

An example: the system updates the Communication Quality Level of resource and student-user (i.e α₄(R^(r)) and α₄(U^(u))) characteristic based on support (technical or content) messages. The system's support staff may make the distinction between the resources being unclear and the student's communication skill weakness. Illustrative scenario: if question is unclear or if student is weak in reading.

Learning Activity Session Traffic Observations

In an embodiment, resource's motivation, popularity and estimated total time attributes may be observed in learning activity sessions. Such observations are modeled using a standard sensor functions with appropriate noise. Similar to the case in the question item response, such sensor function may be dependent on a characteristic of the user involved.

An illustrative example why updating a resource based on user learning session traffic would makes sense: Suppose a particular eBook-chapter-section was assigned to users for reading and not one out of hundreds of users who have started a session went past page two. In this case, the eBook-chapter-section is likely an ineffective learning tool which should not be used in future years for similar types of students.

Optimal Estimation

In the standard filtering theory one has that the observations are a distorted, corrupted partial measurement of the signal, according to a formula such as:

Y _(k) =h(X _(t) _(k) ,V _(k))

where t_(k) is the observation time for the k^(th) observation and {V_(k)}_(k=1) ^(∞) is some driving noise process, or some continuous time variant.

The requirement is to construct a device which can efficiently determine the conditional distribution of the state of the signal given all observations up to the current time, that is,

P(X _(t) εdx|σ{Y _(q),0≦t _(q) ≦t})

Generally, this device is referred to as an optimal tracker. Also, the device should provide smoothers to estimate past signal states and predictors to estimate future signal states, that is,

P(X _(τ) _(s) εdx|σ{Y _(q),0≦t _(q) ≦t})

and

P(X _(τ) _(p) εdx|σ{Y _(q),0≦t _(q) ≦t})

where τ_(s)<t and τ_(p)<t.

In an embodiment, we utilize a non-linear filter (“optimal tracker”) for estimating a conditional probability distribution for current signal states which contain both the user and resource characteristics.

In an embodiment, the overall estimation process involves the set of two filters objects: F (U_(t) ^(i), P) and F (R_(t) ^(i), P).

F (U_(t) ^(i), P): for estimating user U^(i) characteristics, we utilize a non-linear filter for estimating a conditional probability distribution for current signal states (“optimal tracker”) and for past user signal states (“smoother”) F (U_(t) ^(i), P). This filter will be updated in real-time (or near real-time) using filter estimates of resources F (R_(t) ^(j), P) to process observations.

F (R_(t) ^(j), P): for estimating resource R^(j) characteristics, we utilize non-linear filters for estimating a conditional probability distribution. This filter may be updated upon the request by an author user or other administration user using filter estimates of “smoothed” users F (U_(t) ^(i), P) to process observations.

The process is as follows:

1. t₀: Initialize z=0

2. t₀: Initialize F (U_(t) ^(i), P) conditional probability distribution

3. t₀: Initialize F (R_(t) ^(j), P) conditional probability distribution

4. t_(k) where 1≦k:

-   -   a. Evolve conditional probability distribution for F (U_(t)         ^(i), P) according to signal model by t_(k)−t_(k-1).     -   b. If received session observation Y_(t) _(k) of type assessment         or question answer activity         -   i. Update F (U_(t) ^(i), P) with Y_(t) _(k) and F (R_(t)             ^(j), P) given R^(j) is the session question being asked and             answered.     -   c. If system flag is received to update resource R^(j) (i.e.         like in the summer time), then         -   i. Update F (R_(t) ^(j), P) with {Y_(t) _(z) , Y_(t) _(z+1)             , . . . , Y_(t) _(k) } using current smoothed filters for             user corresponding to the observations

$\left\{ {{{\overset{\_}{F}}_{t_{k}}\left( {U^{Y_{t_{z}}},P} \right)},{{\overset{\_}{F}}_{t_{k}}\left( {U^{y_{t_{z + 1}}},P} \right)},{\ldots \mspace{14mu} {{\overset{\_}{F}}_{t_{k}}\left( {U^{Y_{t_{k}}},P} \right)}}} \right\}.$

-   -   -   ii. Update j=z

Filtering Approximations

In order to implement a non-linear filter, approximations must be made so that the resulting non-linear filtering equations can be implemented on a computer architecture. Different approximations are made and along with these approximations different data structures and algorithms are developed, in order to use a particle filter or a discrete space filter. These approximations are highlighted in the following two examples:

Examples of Non-Linear Filtering Approximation Systems

1. SElective Resampling Particle (SERP) Filter (U.S. Pat. No. 7,058,550)

2. REfining STochastic Grid (REST) Filter (U.S. Pat. No. 7,188,048)

REST Filtering Process Overview

In one preferred embodiment, we implement the filtering process with the following iterations at every c-time increments:

-   -   1. Set up filter object by performing at least one of the         following:         -   a. Creating REST cells and REST tree structure: Discretize             signal state by grouping attribute levels. For example, in             an embodiment, we may wish to group difficulty and             proficiency levels of the user proficiency level state space             and resource difficulty state space into three grouping             categories {{0}, {1, 2}, {3}. {4, 5}; {6}} reducing the             space from 7 to 5. Similar type of grouping can be done for             all attribute levels.         -   b. Set particle count to one for every REST cell (optional).     -   2. Initialize conditional estimate by setting particle count to         each cell at time t=0.     -   3. Evolve the filter distribution according to the signal         evolution model by ε with the user of imaginary clocks.     -   4. Process observations that arrived since last update via REST         push_down_observation technique.     -   5. Refine the conditional estimate by performing at least one of         the following:         -   a. REST prune_tree procedures,         -   b. REST split_or_merge procedures,         -   c. REST drift_back_to_initial_distribution procedures, and         -   d. REST particle control procedures.         -   e.     -   6. Go to 3.

SERP Filtering Process

In one preferred embodiment, we implement the filtering process with the following iterations at every ε-time increments:

-   -   1. Create M particles     -   2. Initialize particles over the signal state space     -   3. Evolve all particles according to the signal evolution model         by δ.     -   4. Process observations that arrived since last update.     -   5. Refine the conditional estimate: SERP Filter: perform         unbiased re-sampling procedure.     -   6. Go to 3.

Initialize Filter's Conditional Estimate

-   -   a. Using maximal amount of information: In one preferred         embodiment, we initially set a user's value by using previous         courses' pre-requisite LO grades along with the learning         objectives covered in the previous course. If no such         information is made available, the system generates a         pre-assessment test.         -   Otherwise if no a priori information is present the initial             distribution is set uniformly.     -   b. Resources: In an embodiment, setting the distribution for         resource characteristics may be done through the authoring tools         of the platform by a subject matter expert.         -   Edits: In an embodiment, the normal distribution is used             with mean set to the subject matter experts setting and             variance based on the author's communication skills             attribute if localized by filter.     -   c. System defined: In one preferred embodiment, the initial         distribution may be set by the system given the context for use         of filtering. For example in the context of a final exam         assessment, the initial distribution may be set to uniform         indicating a “fresh” start.     -   d. User defined: In one preferred embodiment, the initial         distribution will be set by an instructor or institutional user.         -   For example: if an institution has scored to entrance exams             or the course admittance requires some minimum base             pre-requisite knowledge and proficiency.     -   e. To assist in detection: In another embodiment, we may want to         ensure that no area of the signal state space is un-represented.         In the REST filter, this is done by initially setting each cell         with particle count of at least one. In the SERP filter, this is         done by placing the particles in the appropriate position such         that the collection of particles would cover the signal state         space, and then simulating or sampling the remainder of         particles, if any, with the desired distribution.

Action Strategies

As mentioned before, the filter's output is very useful in taking advantageous actions based on the information provided. In many circumstances, the action to be taken can best be chosen via an optimal action strategy. An optimal action strategy uses mathematics to determine the best course of action given the filter's output. This can reduce human errors in the interpretation of the filter's output and calculation or execution of action.

There are several action strategies we illustrate:

We use the term “residual over an attribute between A and B” to mean the normalized probability distribution resulting in taking the point-by-point difference between distributions A and B.

In an embodiment we use at least one of the following to set the desired or optimal resource generation request object (i.e. setting ideal attribute distributions):

-   -   action strategy setting A: residual between I or other user's         request object (e.g. an instructor's setting for desired         characteristic distributions if available), and the distribution         formed by all appropriate resources already presented to the         user,     -   action strategy setting B: residuals between 1 or other user's         request object (e.g. an instructor's setting for desired         characteristic distributions if available), and the normalized         distribution formed using the filter variance (i.e. a         localization score of an attribute), and     -   action strategy setting C: utilize the observation model (i.e.         probability of success) and filter estimate for user and         resource to determine the desired characteristic distribution         based on a user's input for the change of success if not         specified then set to a default such as 50%.

In using residuals, the choice in which attribute to consider is system feature or end result dependent. Once the generation request object is created, the system's resource generation feature (or some other higher level object using the generation feature) will solve and present to the user the final desired product. A report of the user's deficiencies may also be generated for the user. The following are examples of how the above-mentioned action strategy settings may be implemented.

-   -   1. Batch Formative Assessment: User u does not identify         preference on LO (i.e. α₁(RQ)=NULL), requests the generation of         an assessment for an ideal time α₁₀(RQ)=x Minutes.

In an embodiment, the action strategy system:

-   -   sets missing α₁(RQ) based on at least one of the following:     -   a. action strategy setting A over LO at a difficulty level range         (e.g. inform over difficulty levels [2-4]), or     -   b. action strategy setting B, or     -   c. action strategy setting C with 75%.     -   generates assessment resource based on RQ object created using         resource generation engine,     -   presented question to user and start session S^(s) (assessment         type),     -   terminate session S^(s) upon last answer submission in         assessment,     -   updates filter estimate based on the result in α₅(S^(s)),     -   present solution and start new session S^(s+1) (of learning         type),     -   terminates assessment session S^(s+1) using appropriate session         exit,     -   update filter estimate now based on the traffic generated by         user learning from full solution or answer key (update filter         with both S^(s+1),S^(s+1)),     -   exit.

E.g. for LO breadth Assessments are practice exams, self study or exam preparation.

-   -   2. One-by-One Adaptive Formative Assessment: User u does not         identify preference on LO (i.e. α₁(RQ)=NULL) and ideal total         time not set α₁₀(RQ)=NULL, then request the generation of an         adaptive assessment.

In an embodiment the action strategy system:

-   -   sets missing the number of ideal question slots to one (i.e.         α₁₃(RQ)=1)     -   sets α₁(RQ) based on at least one of the following:     -   a. action strategy setting A over LO and difficulty,     -   b. action strategy setting B over LO and difficulty,     -   c. action strategy setting C with 50% success, or     -   d. for highly motivated learner's action strategy setting C with         30% chance of success, and for easily discouraged learners (i.e.         filter's localization on low motivation score levels) start with         action strategy setting C with 80% and move towards 50% based on         number of questions asked,     -   generates assessment resource (next question since α₁₃(RQ)=1)         based on RQ object created using resource generation engine,     -   presented question to user and start session S^(s),     -   terminate assessment session S^(s) upon answer submission,     -   updates filter estimate based on the result in α₅(S^(s)),     -   present solution and start new learning session S^(s+1),     -   terminate assessment session S^(s+1) using appropriate session         exit,     -   update filter estimate now based on the traffic generated by         user learning from full solution or answer key (update filter         with both S^(s+1),S^(s+1)),     -   check termination criteria based on filter's estimate on α₁(u,         l),     -   go to 2.     -   3. Formative Study Pack Generation: User v does not identify         preference on LO (i.e. α₁(RQ)=NULL), requests the generation of         an assessment for an ideal time α₁₀(RQ)=x Days, Weeks or Months.         -   SAME AS EXAMPLE #1 EXCEPT NOW WE SET α₁₄(RQ) and the             resource generated is a study pack or courseware.     -   4. One-by-One Formative Study Pack Generation: User u does not         identify preference on LO (i.e. α₁(RQ)=NULL) and ideal total         time no set α₁₀(RQ)=NULL, then request the generation of an         adaptive one-by-one formative study pack. We also estimate         user's learning style, and if question/solutions is just not         working in terms of student learning, maybe after a question         type, the next resource should be of a different learning style         of format such as an interactive video or appropriate learning         forum. In an embodiment the action strategy system:         -   SAME AS #2 EXCEPT NOW WE SET α₁₄(RQ) and the items are no             longer limited to questions.     -   5. One-by-One Adaptive Summative Assessment: Instructor or         institution sets α₁(RQ) but not α₁(RQ, m, d), set α₁₀(RQ)=NULL,         then request the generation of an adaptive summative assessment.

In an embodiment the action strategy system:

-   -   creates a new filter for this session and initialize using the         uniform distribution strategy,     -   sets missing the number of ideal question slots to one (i.e.         α₁₃(RQ)=1)     -   sets α₁(RQ) based at least one of the following     -   a. action strategy setting C with 50% success (or arbitrarily         sets by assessment administrator),     -   b. action strategy setting A over LO and difficulty,     -   c. action strategy setting B over LO and difficulty,     -   generates assessment resource based on RQ object using resource         generation engine (i.e. pick next question),     -   presented question to user and start new session S^(s) and add         to container or parent session structure if appropriate,     -   process session information in S^(s) (i.e. update filter's         conditional estimate),     -   terminate assessment based on localization on all LO else go to         step 2.     -   6. Reporting Learner Root Deficiency: In an embodiment, through         a user request mechanism, the system can provide reports on a         student-user (learner) and display it to at least one of:     -   an appropriate instructor user,     -   to the learner's parent, and     -   to the learner.

In another embodiment, the system may further generate a report with suggested links to resources generated for the learner (as mentioned above in study pack generation) by at least one of:

-   -   using action strategy setting A for LO proficiency,     -   action strategy setting B for LO proficiency, and     -   setting Visual Preference Distribution, Auditory Preference         Distribution and Tactile/Kinesthetic Preference Distribution         with that of the user's estimate if not overridden by user         himself/herself into a request generation object.

In another embodiment, the system may further generate a report with suggestions to other users of the system for tutoring purposes that have strength in this particular user's root deficiencies. In an embodiment the system may produce such search results by action strategy setting A into a request generation object for system users as resources. The report may recommend the user contact a second user such as a tutor.

-   -   7. Reporting Learner Proficiency:         -   SAME AS #6.

In another embodiment, the system may further generate a report with suggestions to other users of the system for tutoring purposes that have root deficiencies in areas in which this learner has strong proficiency.

-   -   8. Reporting Learning Resource Quality: In an embodiment, the         system may generate a report directed to an instructor on         resource quality estimates. In another embodiment, the system         may generate a report directed to authors of the resource.     -   9. Reporting Question Bank Item Quality:         -   SAME AS #8. Questions are resources.

Estimating User Identity

The signal and observation model of this system and method may also be employed to estimate the identity of users who access the learning system. Ensuring the identity of test takers and the integrity of online home invigilated exam/test results is a key challenge with online education. We see there being two aspects to home invigilation for high stake assessments: student identification and proctoring. The heart of the problem in both aspects lie in the fact that in an online home invigilated exam both the computer and exam environment are uncontrolled, thereby making it “un-trusted”.

In order to track user identity, the signal model may also include user patterns and tendencies when using software, such as Graphical User Interface traffic vs. keyboard shortcuts and keystroke rates. For example, if a user has throughout a semester not used any keyboard shorts within the system, then a sudden increase of the use of those shortcuts during a final examination that demonstrate a much higher technological proficiency than was previously observed may indicate that the user is not the same user. In this example, if the event in which the increase in use of shortcuts for a given session given a user's profile is sufficiently improbably, the system may flag the user as masquerader. Moreover, if the proficiency of the user has increased at a highly improbable rate or if the biometrics of keystrokes when the user typed his password are not consistent with the user's signal profile from throughout the year, then again the system may flag the user as a potential masquerader. Flagging the user as a potential masquerader may also mean that a report or notice is generated for a proctor or instructor that will confirm the identity through other means (e.g. such as government issued photo identification).

Permission & Copyright

In an embodiment, the system allows users (student, authors, instructors, etc . . . ) to author and create new resources R^(r) in a collaborative system.

For example:

-   -   1. user U^(author) creates a resource R^(r) (e.g. a 10,000 item         question bank). U^(author) is the copyright holder,     -   2. user U^(instructor) a teacher and is able to search and find         R^(r) and use it through the system tools (i.e. use it in         U^(instructor)'s weekly homework),     -   3. user U^(instructor) is a student of and is able to only read         the question and not be able to interact with it nor see the         full solutions without paying $5 through the system's online         store,     -   4. user U^(sales) is in charge of going from institution to         institution and try to sell R^(r),     -   5. user U^(colleague) is subject matter expert in the area and         wishes to contribute freely his time to make small edits,     -   6. user U^(coordinator) is wanting to use the database but needs         to make and maintain their own version of R^(r) since their         school is a religious school and many of U^(author)'s examples         are inappropriate. In fact U^(coordinator) is willing to pay         $10,000/yr. for rights to use and modify,     -   7. user U^(chair) is the chair of the department in which         U^(author) belongs to and reminds U^(author) that he does not         have ownership of the copyright, but the school does. After some         debate, the school represented by U^(chair) and U^(author) come         to an agreement that from now U^(chair) will share rights for         R_(t) _(k) ^(r) but any derivative works, produced by U^(author)         solely belong to U^(author) (i.e. R_(t) ^(r) where t>t_(k)),     -   8. user U^(publisher) finds R_(t) _(k) ^(r) and wants to manage         a larger sales team, she promises all revenues coming to         U^(publisher) will be shared 50-50 with the U^(author),     -   9. user U^(publisher) finds R_(t) _(k) ^(r) and wants to manage         a larger sales team, she promises all revenues coming to         U^(publisher) will be shared 50-50 with the U^(author),     -   10. user U^(chief) ^(—) ^(editor) has many editor underneath her         and was hired by U^(author) to changing all the graphics work so         he can differentiate with his own department. With so much work,         she needs to delegate and work in parallel with her staff,     -   11. user U^(china) is a professor in china and he would like to         take the database and translate it R^(r) for Chinese         students/teachers, but also wants to all to translate it to         Japanese, Korean, and Russian.     -   12. user U^(brother) is U^(author)'s brother and is very         trustworthy. He wants to give him a chance to be his equal.

We define a new object structure for permissions and rights object Ω^(ω)ε{Ω^(j)}_(j=1) ^(|Ω|) (“permissions object”).

Default: Due to the recursive nature of system resources, once a permissions and rights object is created, all resource segments inherit the same permissions object.

In another embodiment, the grantor α₅(Ω^(ω)), may give a separate write permissions object for any segment of the resource α₃(Ω^(ω)).

Permission Type: {R, C, W} in English means: Read, Copy and Write. In an embodiment, copy means to create a copy of α₃(Ω^(ω)), write means to write (or author) the “original” resource α₃(Ω^(ω)) directly, and read means to read or load with system tools resource α₃(Ω^(ω)).

Copy implies you have read and write on the COPY and not the original α₃(Ω^(ω)).

In an embodiment, we expand the space to allow for more actions. For example an execute action denoted by E such that the new space {E, R, C, W}. An example where an execute action may be used is in the example where a user (typically an instructor user) shares a scheduled request objects (e.g. homework). In this case the previously stated three actions, read, copy and write do not make much sense. The request object for the end user (i.e. receiving student) is only “executed” by the resource generation object to produce a resource wherein the student will have read permissions to the newly created learning tool.

Granting Level: In an embodiment, we define {Y, G, SG} in English means: Yes, Granting and Super Granting. This set is ordered or ranked in the sense where Granting status can only grant a Yes status for the Permission Type in which it belongs, and Yes can only grant an implicit No.

The only exception to this rule is SuperGrant which can grant other SuperGrant level statuses.

Permission Tuple: The tuple then represents both the permission and granting level.

In the example scenario above, we map all users and the minimum permission tuple they need in the table below:

TABLE 7 Y G SG R U^(instructor) U^(sales) U^(publisher) C U^(coordinator) U^(china) U^(chair) W U^(colleague) U^(chief) ^(—) ^(editor) U^(brother)

In an embodiment, we referenced the most naturally occurring agreement templates in α₈(Ω^(ω)). For example:

-   -   1. R,Y: end user agreement     -   2. C,Y: customization agreement: e.g. derivative works allowed         for educational use. Typically these are instructors that do not         like any textbook since they pride themselves on having unique         teaching styles or the course they are teaching is very unique         and no ideal textbook exists. These instructors want an         eLearning publishing platform with tools that:         -   allow customizability and flexibility,         -   allow instant updating and a process for evolving their             work,         -   are convenient and easy to use, and         -   are inexpensive for their students.     -   3. W,Y: co-authorship/collaboration agreement     -   4. R,G: sales agent agreement     -   5. C,G: distribution agreement     -   6. W,G: editorial agreement     -   7. R,SG: publishing agreement     -   8. C,SG: branching works (collaboration termination) agreement     -   9. W,SG: partnership agreement

In an embodiment, we expand the space to allow for more levels of grants {Y, G¹, G², G³, . . . , SG}. This is especially useful the SuperGranter wants to control the distance in which derivative works can branch.

TABLE 8 j Symbol Description of field j for Ω^(ω) 1 α₁(Ω^(ω)) ∈ {R, C, W} × Permissions and Rights Tuple: {Y, G, G^(n)} Described above Permissions and Rights Tuple 2 α₂(Ω^(ω)) ∈ {Uj}_(j=1) ^(|U|) Who: user or user group through Who recursive structure. 3 α₃(Ω^(ω)) ∈ {Rj}_(j=1) ^(|R|) What: a resource on the system. What 4 α₄(Ω^(ω)) ∈ {ScopeObjects} Where: in an embodiment, defines Where scope geographic via IP, by institution, a server, a user group within the system. 5 α₅(Ω^(ω)) ∈ (0, ∞] When: expiry. In an embodiment, When we define or allow α₅(Ω^(ω)) = ∞. 6 α₆(Ω^(ω)) ∈ {Uj}_(j=) ₁ ^(|U|) User who granted α₂(Ω^(ω)) with Grantor this permission tuple. 7 α₇(Ω^(ω)) ∈ 

Price Paid for this permissions Purchasable Price object 8 α₈(Ω^(ω)) In an embodiment, this field is set to Other Terms any extra rules and terms the granting of this Ω^(ω). For example: Sales Agent Agreement, Derivative Works Agreement, Open Source Agreements, CopyLeft, Revenue Sharing, Publishing Agreement, methods of payment, etc . . .

Permissions may be important where the system and method employs authoring tools in creating and modifying potentially copyright materials (e.g. including annotations, scientific and mathematical equations and formulae, graphs, eBooks, questions, solutions, worksheet questions, etc . . . ). Allowing users to seamlessly create and edit content containing text, web components such as tables, lists, as well as scientific equations and expressions requires the computerized learning system to track which users have permission to use which resources and at what times.

SmartType and Authoring Tools

In an embodiment, the system and method may implement an integrated symbol writing system which does not require any additional plug-ins or software in order to run so that information may be updated within an ordinary web browser. For example, for documents that have a copy grant, then the future users may be the ability to change and updated the document.

Within an eLearning/eAssessment/ePublishing/eTutoring platform environment (“system”), authoring tools may allow users to do the following:

-   -   quickly develop learning tools such as book, lecture notes,         audible lectures, questions and solutions into a modern course         offering (e.g. authors, instructors, course coordinators) and         share, assign or publish it to other users,     -   quickly enter mathematical or other scientific notation within a         full text editor,     -   be intuitive for first time while not cumbersome for experience         and power users,     -   collaborate editing or development of resources with         collaborators,     -   receive meaningful feedback to evolve resources; into a more         comprehensive learning package through the system.     -   create and edit complex documents with mathematical and         scientific equations with ease.     -   type scientific expressions/equations much faster thus         increasing productivity in writing mathematical and scientific         content such as questions, solutions, papers, instructions, etc.         Main efficiency gains will be from the predictive capabilities         of the authoring tools. Current solutions do not have such         predictive feature.

In an embodiment, the system may have predictive capabilities to optimally reduce user number of keystrokes on scientific equations and expressions. This means students/learners will be able to enter online mathematical/scientific symbols and expressions quickly and with minimal frustration.

In an embodiment, the system integrates scientific symbols in-line with text (SmartType) in content within a computerized learning system, comprising:

-   -   switching from text mode into scientific mode;     -   converting plain-language text input into scientific code;     -   displaying a graphical representation of the scientific code         in-line with the text; and     -   adaptively predicting plain-language text input using         context-based prediction.

In this description in-line means for each user keystroke there is at least one of the following responses:

-   -   newly rendered symbol or graphical representation of what is         inputted by the user, and     -   helpful hints or error messages to guide inexperience users on         how to user this authoring tool.

In an embodiment, the system uses a Markov Chain model by describing the transition probabilities from a sequence of n-key-strokes to the next m-key-strokes.

$P^{U^{u}}\left( {{\begin{bmatrix} \zeta_{t_{k - 1}} \\ \zeta_{t_{k - 2}} \\ \vdots \\ \zeta_{t_{k - n}} \end{bmatrix}->\left. \begin{bmatrix} \zeta_{t_{k + m - 1}} \\ \vdots \\ \zeta_{t_{k + 1}} \\ \zeta_{t_{k}} \end{bmatrix} \middle| {\alpha_{2}\left( S^{s} \right)} \right.},{\alpha_{1}\left( {\alpha_{1}\left( S^{s} \right)} \right)}} \right)$

where for the session object S^(s)α₄(S^(s))=Authoring, α₂(S^(s))εSystem Feature/Tool Set and α₁(S^(s)) is the resource therefore α₁(α₁(S^(s))) and α₁(α₁(S^(s))) and ζ_(t) _(m) corresponds to a key-stroke at time t_(m) by user U^(u).

In another embodiment, we describe transition probability for key-stroke entropy ee within a time segment.

$P^{U^{u}}\left( {{\begin{bmatrix} {ee}_{t_{k - 1}} \\ {ee}_{t_{k - 2}} \\ \vdots \\ {ee}_{t_{k - n}} \end{bmatrix}->\left. \begin{bmatrix} {ee}_{t_{k + m - 1}} \\ \vdots \\ {ee}_{t_{k + 1}} \\ {ee}_{t_{k\mspace{11mu}}} \end{bmatrix} \middle| {\alpha_{2}\left( S^{s} \right)} \right.},{\alpha_{1}\left( {\alpha_{1}\left( S^{s} \right)} \right)}} \right)$

Such a model is used for predictive text (i.e. SmartType). In an embodiment, transition probabilities can be initialized by the various documents and learning tools (e.g. questions, solutions, subject matter content, audible lectures, worksheets, chatter-box/forum discussions, etc . . . ).

In an embodiment a new bio-metric signal for each user is measured and for each session a filter object is created in order to predict the users typing preferences and styles.

FIG. 8 shows an example of a computerized learning system. A server 802 includes a processor 804 and a memory 806. The server is connected to a database 808 and a network 810. A number of users 818 are connected to the network 810 through computers, which include a display 812, an input/output 814 and a processor 816. The processors 804, 816 may be any kind of programmable computerized system that may communicate with a communications network 810. The computers comprising parts 812, 814, 816 may each be a hand-held device, for example, which may be connected to a wireless network. The computer 812, 814, 816 may be any electronic system that is programmable to carry out the functions described here and that allows a user to connect to the server 802. The network 810 may be any type of communication network that allows a user 818 to connect to the sever 802. The network may be made up of a series of communication tools such as fiber optic cable, satellite signals, wireless networks, copper wire or other methods of communication and may include the internet or other local or wide area networks including intranets. The processors 804, 816 are shown as physical objects but each may comprises one or more parts of multiple physical objects that provide processor functionality. All functions described here may be carried out by services that are locally resident or distributed across servers or hosted remotely. Memory or databases may be provided locally or remotely and may be distributed across servers in what has become known as cloud computing. All functions described here may use service mobility.

Particle Filters Generally

Particle filters are essentially sophisticated Monte-Carlo methods that approximate the optimal nonlinear filter by somehow fitting Monte-Carlo trials to the observations received. These filters utilize copies of the signal model (entitled ‘particles’) to yield its conditional estimate and distribution. Initially, particle filters distribute the particles in a manner that approximates the initial guess as to the likelihood of the state of the signal. Each particle is also assigned an initial relative worth, or weight. This weight is typically the same for all particles initially, since there is no information from any data. The particles then evolve using the mathematical model for the signal, as shown in FIG. 10. When new observation data arrives, a particle's weight is updated based on how well the particle's state conforms to the information from the observation, as demonstrated visually in FIG. 11. This process continues as new information arrives. In FIG. 10, particle evolution is shown with initial locations on the right shown with the filled in circles.

Particle filters calculate a conditional estimate based on a weighted average of all particles' states. As the number of particles tends towards infinity, the computed estimate becomes ever closer to the value provided by the optimal filter.

The basic algorithm presented above presents the standard particle filter typically known as the Weighted Particle Filter. Subsequently ‘adaptive’ particle filters were developed which added a resampling step after the weight update step. Resampling modifies the filter by copying, adding, and/or removing particles in order to increase both the computational efficiency and the estimation fidelity.

Discrete Space Filters Generally

Discrete space filters are a distinctly different type of approximate solution. Discrete space filters operate in circumstances when the domain of the signal (that is, the range of values for the variables that make up the state of the signal) is closed. This means that the domain cannot have values that reach infinity. Despite this restriction, discrete space filters can work on most interesting applications.

The premise behind discrete space filters is that the domain is broken up into a number of blocks, or ‘cells’, each representing a distinct area of space within the domain. For instance, if the domain is a two dimensional area, then the cells can form a cross-section grid the domain. Similar grids can be constructed in higher dimensional spaces. These grids do not have to be uniformly refined; some dimensions can be broken into smaller blocks while others can have larger blocks. FIG. 12 shows a discrete space grid with particles.

Discrete space filters place a ‘weight’ (usually called a point mass) in each cell. This point mass represents the relative likelihood that the signal's state currently exists within the region of the domain. The point mass value within the cell is usually called the cell's ‘particle count’, and is shown in FIG. 12. Unlike the particles used in particle filters, these particles are not copies of the signal.

In between observations, discrete space filters evolve their particles by transferring particles between neighbouring cells, creating new particles within the cell, and destroying particles within the cell. These changes in the particle counts occur at certain rates over time, and are based on the mathematical function that dictates the evolution of the signal. The effect of these rates is to mimic the potential movement of the signal.

When new observation information arrives, the point masses for each cell are re-calculated based on the new information in a manner similar to particle filters. The conditional distribution is formed by normalizing the point masses for each cell.

There are many challenges that are addressed when implementing a discrete space filter. For instance, the number of cells to be stored can become quite large should a fine grid be required for precise estimates. In addition, accessing and modifying the cells based on the observation information can become exponentially large without an effective indexing scheme. Moreover, the rate calculations can be cumbersome, resulting in redundant computations. In order for discrete space filters to be able to perform well, many sophisticated implementation techniques are used to deal with these issues.

Furthermore, well-designed discrete space filters also have the ability to automatically refine the size (and consequently number) of the cells, based on the current conditional distribution. This is extremely useful, particularly when tracking signals. When a particular area of the domain has a high relative weight, the cells can be refined in order to obtain a more precise distribution. Conversely, should a filter with a highly refined grid receive several observations that reduce the preciseness of its estimates, the filter can automatically combine cells to reduce the computational load while attempting to re-acquire a good estimate of the signal's state. This type of automatic grid refinement is demonstrated in FIG. 13.

FIG. 14 shows one possible relationship between a server 1412 and a client 1410 for generating learning tools based on desired characteristics or constraints. In an embodiment the desired characteristics are transmitted in the form of a distribution of desired characteristics. The client 1410 will decide on what constraints 1400 to send to an algorithm stored in the server 1412. A user interface will manage the constraint selection process, and will send the constraints to the server 1412 over a network 1411, which can be either a local area network or an internet connection. The algorithm will review what constraints have been submitted by the client 1410, and will remove entries that will never fit the given constraints. This will allow for a faster computation. From a filtered domain 1403, the algorithm will select entries at random to form an amount of subsets 1404 depending on the processing power and network latency of the server 1412. An ideal subset is theoretically determined, which would represent the global minimum when the subsets 1404 are compared with a theoretical ideal 1405. Since the ideal represents what the client 1410 wants best, any subsets that are not close to this ideal are rejected. The ones that pass are sent to be randomly selected 1406, where they will be sent back to the client 1410. A client 1410 interface will organize and arrange the data 1407 received from the server 1412 accordingly. The client 1410 is able to send a request back to the server 1412, wherein it will select a new subset from the already determined set if the constraints defined in 1400 do not change. Upon changing the initial constraints and re-submitting a request to the server 1412, the process will repeat from 1403 wherein the superset will change accordingly.

FIG. 15 details how the system may interact with a database 1501, and how it will select entries to be sent to a client based on the given conditions 1500. A user will predetermine what restrictions 1400, or desired characteristics, are to be sent to the database 1501. Upon receiving said restrictions 1500, an algorithm will extract entries that will not be able to fit the constraints 1500. This will change the database 1501 into a constricted database 1502 wherein the algorithm will first create a theoretical idea subset 1503 based on the constraints, and a series of randomly generated subsets 1504 a, 1504 b, 1504 c, 1504 d from the restricted database 1502. Both the ideal and the randomly selected subsets will be sent for comparison as described in FIG. 16.

FIG. 16 illustrates the comparison of the subsets 1504 a, 1504 b, 1504 c, 1504 d and the ideal 1503 from FIG. 15. The ideal subset 1503 has a fixed distance from the users requested constraints 1500. This distance will be a certain value 1510, and will be explained in FIG. 16. The ideal subset 1505 a will be compared 1506 a to the initial conditions 1500. It should be noted that only one theoretical ideal subset is predicted, and every randomly selected subset is compared to the initial constraints as defined in 1500. Multiple ideal subsets are only illustrated for explanatory reasons. After comparing the subsets 1507 a, 1507 b, 1507 c, 1507 d to the users' constraints, values 1509 a, 1509 b, 1509 c, 1509 d are computed based on the ‘distance’ of the subsets 1507 a, 1507 b, 15207 c, 1507 d to the initial constraints 1500. The function 1508 is part of the algorithm used throughout the process. Values 1510, 1509 a, 1509 b, 1509 c, 1509 d are used in FIG. 17.

FIG. 17 defines how the comparative value for the ideal subset 1510 is used in conjunction with the values for the randomly generated subsets 1509 a, 1509 b, 1509 c, 1509 d. Due to the fact that the randomly generated subsets 1504 a, 1504 b, 1504 c, 1504 d will ostensibly never be an exact match to the ideal 1503, the algorithm must assign a threshold value 1511 to the ideal comparative value 1510. One way for the algorithm to compare values when one has a threshold, is to place them on a real number line 1512. This will automatically sort and allocate which values are within the desired bounds. Values that are inside of the threshold values are placed in a semi-temporary group 1514 so that they can be dealt with by the algorithm accordingly. Subsets deemed to be unfit for use by the client 1400 are outside of the threshold values, and are also placed in a semi-temporary group 1513 that will be mutated or discarded. From the set of subsets 1514 to be used, the algorithm will finally pick one at random 1515 to be sent to the user 1410, 1516.

FIG. 18 details a constraint wherein the user can define the number of final subsets using a constraint 1600 to be sent to the user. If undefined, the algorithm will randomly select one subset to be sent to the user. If, however, the user requests multiple unique sets, the algorithm will select the appropriate number of sets that are within the threshold value. The algorithm will handle all processes until the final submission as if the constraint did not exist. Thus, the next figure avoids detailing the comparison of the subsets and the ideal to the constraints, as this process is same as shown in FIG. 16.

FIG. 19 injects the constraint 1600 in FIG. 18 into the selection process as outlined in FIG. 17, and explains how it can be used. This constraint is only relevant between processes 1514 and 1515. The processes illustrated in FIG. 19 and summarized in FIG. 18 are not limited to the conditions and restraints 1606, 1609 outlined. The constraints 1600 initially selected by the user contained a constraint that forces the system to meet a certain demand. If the demand is not met after processes 1607 is repeated multiple times, a request to supply sufficient data will be made, and will cause the algorithm to ignore the constraint notifying personnel when appropriate. Should the algorithm be successful in acquiring enough subsets to satisfy the initial conditions, it will randomly select subsets that are within the threshold value until the constraint is met 1610.

FIG. 20 outlines a constraining method similar, but opposite to that stated in FIG. 18 and FIG. 19. This process enables the user to add a constraint where the algorithm will restrict itself to how many random subsets it can allot for threshold comparison. When used in conjunction with the constraint used in FIG. 18, process 1600, the user can possibly draw a subset that is closer to the ideal, when only one output subset is desired faster than originally outlined. This gives a case where the constraints defined are not subject to only influencing the possible output subsets. The reader will note that as with FIG. 18, the algorithm will handle all processes from 1501 to 1511 as is outlined in FIG. 15 and FIG. 16.

FIG. 21 continues FIG. 20 at the point in which constraint 7 in 1700 is used. Constraint 7 changes the threshold value 1705, and in this case it constricts the value causing the final results to be closer to the ideal. Subsets 2 and 4 are not within the threshold values, so they are sent to the trash. Subset 3 is on the border, so it is sent to a mutator 1706. The mutator 1706 is a sub property of the algorithm, where it will analyze the subset and determine what elements cause the most divergence, and will replace them with other elements such that the final comparative score of the subset will be within the threshold values 1707. The new subset 3 is now regarded to be equivalent to subset 1, which initially was within the threshold values and did not require mutation. The algorithm will select a qualifying subset randomly 1713 and send it to the client 1714.

FIG. 22 shows an exemplary interface for user generated learning tools. A user may select various desired sections 2202, the length or time of the exam 2204 and the distribution of weights of question difficulties 2206. The professor may select various weights for different chapters 2208. The professor may further select topics within a chapter of different weights. The duration 2210 and number of questions 2212 may be selected. The number of questions may also be fixed 2214. The difficulty of the questions may be selected 2216. In other embodiments, other characteristics of a learning tool may also be selected using a similar interface. Other types of learning tools may also be selected.

The methods described in this patent document may be carried out on any type of processor or computer system and may be stored on a computer program product comprising a non-transitive computer readable medium having encoded thereon computer executable instructions for implementing any of the methods described.

Immaterial modifications may be made to the embodiments described here without departing from what is covered by the claims.

In the claims, the word “comprising” is used in its inclusive sense and does not exclude other elements being present. The indefinite article “a” before a claim feature does not exclude more than one of the feature being present. Each one of the individual features described here may be used in one or more embodiments and is not, by virtue only of being described here, to be construed as essential to all embodiments as defined by the claims. 

1. A method for updating and using a conditional estimate of a signal in a computerized learning system, comprising: obtaining observations of user behavior through user interaction with the computerized learning system; updating a conditional estimate of a user signal representing a characteristic of a user based on the observations; and using the conditional estimate of the user signal to generate at least one of the following: (a) a learning tool, and (b) a report.
 2. The method of claim 1 in which the method further comprises updating a conditional estimate of a learning tool signal representing a characteristic of the or a second learning tool based on the observations and based on the estimate of the user signal.
 3. The method of claim 2 in which the user signal and the learning tool signal are modeled using a combined signal.
 4. The method of claim 1 in which updating the conditional estimate of the user signal comprises applying a non-linear particle filter.
 5. The method of claim 1 in which updating the conditional estimate of the user signal comprises applying a non-linear discrete filter.
 6. The method of claim 1 further comprises: initializing an initial conditional estimate; updating the conditional estimate based on received observations; and reporting on a state of the signal.
 7. The method of claim 6 in which the state of the signal is a present state of the signal.
 8. The method of claim 6 in which the state of the signal is a future state of the signal.
 9. The method of claim 6 in which the state of the signal is a past state of the signal.
 10. The method of claim 1 in which the conditional estimate of the signal is used to generate a learning tool and in which the characteristic of the user is a learning characteristic.
 11. The method of claim 10 in which the learning tool is selected based on deficiencies in the learning characteristic of the user and in which the learning tool includes content corresponding to the deficiencies of the learning characteristic of the user.
 12. The method of claim 10 in which the learning tool is an assessment item, and the assessment item is selected based on proficiencies of the learning characteristic of the user.
 13. The method of claim 2 in which the learning tool signal representing a characteristic of the or a second learning tool represents a difficulty rating of the or a second learning item.
 14. The method of claim 1 further comprising using the conditional estimate of the user signal to generate a report, in which the characteristic of the user further comprises a conditional estimate of the identity of the user, and in which generating the report further comprises generating a notice if a comparison between the conditional estimate of the identity of the user for a current session and the conditional estimate of the identity of the user for a previous session does not exceed a threshold.
 15. The method of claim 14 in which the current session is an exam writing session and in which the notice further comprises a message sent to a proctor of the exam writing session.
 16. The method of claim 1 in which the conditional estimate of the user signal is used to generate a report and in which generating the report further comprises generating a recommendation for the user to communicate with a second user.
 17. The method of claim 16 in which the second user is a tutor.
 18. The method of claim 1 in which the conditional estimate of the user signal is used to generate a report and in which the report further comprises a recommendation for the user to access a learning resource.
 19. The method of claim 1 in which the conditional estimate of the user signal is used to generate a report and in which the report further comprises a grading report for the user related to a graded content item.
 20. The method of claim 19 in which obtaining observations further comprises identifying incorrect answers given in response to a graded content item that demonstrate an understanding of a learning objective of the graded content item and in which the grading report includes an award of partial marks for the demonstrated understanding of the learning objective of the graded content item.
 21. The method of claim 2 in which the user interacted with the or a second learning tool at a previous time tk, and the method further comprising updating the conditional estimate of the learning tool signal using historical smoothing of user signal at the time tk. 22-23. (canceled)
 24. A method for updating and using a conditional estimate of a signal in a computerized learning system, comprising: obtaining observations through user interaction with the computerized learning system; updating a conditional estimate of a signal representing at least one of a characteristic of a learning tool and a characteristic of a user based on the observations using a non-linear filter; and using the conditional estimate of the signal to generate at least one of the following: (a) the or a second learning tool, and (b) a report.
 25. The method of claim 24 in which using a filter comprises applying a non-linear particle filter.
 26. The method of claim 24 in which using a filter further comprises applying a non-linear discrete filter.
 27. The method of claim 1 further comprises: initializing an initial conditional estimate; updating the conditional estimate based on received observations; and reporting on a state of the signal.
 28. The method of claim 24 in which the state of the signal is a present state or a future state of the signal.
 29. The method of claim 24 in which the state of the signal is a past state of the signal.
 30. The method of claim 24 in which the conditional estimate of the signal is used to generate the or a second learning tool and in which the characteristic of the user is a learning characteristic.
 31. The method of claim 30 in which the or a second learning tool is selected to improve the learning characteristic of the user.
 32. The method of claim 31 in which the selected learning tool is a remedial learning tool.
 33. The method of claim 32 in which the remedial learning tool is selected based on deficiencies in the learning characteristic of the user and in which the remedial learning tool includes content corresponding to the deficiencies of the learning characteristic of the user.
 34. The method of claim 24 in which the signal represents a characteristic of the learning tool and the characteristic of the learning tool is a difficulty rating of the or a second learning item.
 35. The method of claim 24 further comprising using the conditional estimate of the signal to generate a report based on the conditional estimate of the signal, in which the characteristic of the user further comprises a conditional estimate of the identity of the user, and in which generating the report further comprises generating a notice that the conditional estimate of the identity of the user for a current session does not correspond to a conditional estimate of the identity of the user for a previous session.
 36. The method of claim 35 in which the current session is an exam writing session and in which the notice further comprises a message sent to a proctor of the exam writing session.
 37. The method of claim 24 in which the conditional estimate of the signal is used to generate a report and in which generating the report further comprises generating a recommendation for the user to communicate with a second user.
 38. The method of claim 37 in which the second user is a tutor.
 39. The method of claim 24 in which the conditional estimate of the signal is used to generate a report and in which the report further comprises a recommendation for the user to access a learning resource.
 40. The method of claim 24 in which the conditional estimate of the user signal is used to generate a report and in which the report further comprises a grading report for the user related to a graded content item.
 41. The method of claim 40 in which obtaining observations of a signal representing a characteristic of a user further comprises identifying incorrect answers given in response to a graded content item that demonstrate an understanding of a learning objective of the graded content item and in which the grading report includes an award of partial marks for the demonstrated understanding of the learning objective of the graded content item.
 42. The method of claim 24 in which the signal the user interacted with the or a second learning tool at a previous time tk, and the method further comprising updating the conditional estimate of the learning tool signal using historical smoothing of user signal at the time tk. 43-44. (canceled)
 45. The method of claim 24 in which the signal further comprising: storing a plurality of the characteristic of a user in a computerized learning system; and assigning the plurality of the user a probabilistic distribution.
 46. A method of generating learning tools within a computerized learning system, comprising: storing a plurality of learning tools within a database, each one of the plurality of learning tools being associated with a plurality of characteristics; receiving a request in the form of a distribution of desired characteristics; and generating a subset of the plurality of learning tools having a plurality of characteristics satisfying the requested distribution of desired characteristics.
 47. The method of claim 46 further comprising transmitting the generated subset of the plurality of learning tools to at least one user.
 48. The method of claim 46 further comprising: obtaining observations through user interaction with the computerized learning system; updating a conditional estimate of a user signal representing a characteristic of a learning tool and a characteristic of a user based on the observations; and in which generating a subset of the plurality of learning tools having a plurality of characteristics satisfying the requested distribution of desired character further comprises using the conditional estimate of the signal to generate the plurality of learning tools.
 49. The method of claim 46 in which the distribution of desired characteristics are selected by a user.
 50. The method of claim 48 in which generating a subset of the plurality of learning tools having a plurality of characteristics satisfying the distribution of desired characteristics is repeated for a plurality of users and in which the generated subsets of the plurality of learning tools for each of the plurality of users are unique.
 51. The method of claim 50 in which each of the plurality of learning tools are generated after the occurrence of an event.
 52. The method of claim 51 where the event is triggered by one of the plurality of users selecting an option.
 53. The method of claim 52 in which selecting an option comprises clicking a labelled button on a display.
 54. The method of claim 51 in which each of the plurality of learning tools are generated simultaneously for each user.
 55. The method of claim 48 in which a user selects a locked subset of the subset of the plurality of learning tools to be included within each of the subsets of the plurality of learning tools being generated for each of the plurality of users.
 56. The method of claim 46 in which the subset of the plurality of learning tools are generated through a request by an individual user and the method further comprising distributing the plurality of generated learning tools to a plurality of additional users.
 57. The method of claim 46 in which generating the subset of the plurality of learning tools satisfying the distribution of desired characteristics further comprises re-publishing a pre-existing subset of the plurality of learning tools which satisfies the distribution of desired characteristics.
 58. The method of claim 46 in which the requested distribution of desired characteristics comprises scheduling characteristics.
 59. The method of claim 46 in which the generated subset of the plurality of learning tools comprises courseware.
 60. The method of claim 59 in which the courseware comprises a collection of both educational items and assessment items.
 61. The method of claim 46 in which a previously generated plurality of learning tools has been generated before the at least one of the learning tool and the report is generated, and in which the distribution of desired characteristics is selected based on the previously generated plurality of learning tools.
 62. The method of claim 46 in which the distribution of desired characteristics is selected based on a normalized filter variance distribution.
 63. The method of claim 46 in which the distribution of desired characteristics is selected based on a determined probability of causing a desired action based on a filter estimate and model.
 64. The method of claim 46 in which the distribution of desired characteristics is selected based on an optimal action strategy model.
 65. A method of generating learning tools for a user within a computerized learning system, comprising: submitting a request for a learning tool satisfying a distribution of desired characteristics; and receiving the learning tool from a server, the learning tool satisfying a distribution of desired characteristics for the learning tool. 66-67. (canceled)
 68. A method for assigning rights associated with learning tools in a computerized learning system, comprising: assigning for an action corresponding to a learning tool associated with a user a permission object, wherein the permission object is capable of being assigned each one of the following permissions: a super grant permission, wherein the user is capable of performing the action and the user is capable of delegating any level of permission related to the action to a subsequent user; a grant permission, wherein the user is capable of performing the action and the user is capable of delegating a yes permission related to the action to the subsequent user; the yes permission, wherein the user is capable of performing the action and the user is unable to delegate any level of permission related to the action to the subsequent user; and a no permission, wherein the user cannot perform the action and the user is unable to delegate any level of permission related to the action to the subsequent user. 69-70. (canceled)
 71. A method of adapting an educational and assessment system for a user, comprising: storing educational items and assessment items in a database; repeating for a plurality of users, a plurality of assessment items and a plurality of educational items: updating a characteristic of a user of the plurality of users and a characteristic of an assessment item of the plurality of assessment items based on interaction between the user and assessment item; updating the characteristic of the user of a plurality of users and a characteristic of a first educational item based on interaction between the user and the first educational item; and presenting at least one of an educational item of the plurality of educational items, an assessment item of the plurality of assessment items to a selected user of the plurality of users to generate a desired effect on the user based on the characteristic of the user. 72-73. (canceled)
 74. A method of integrating scientific symbols in-line with text in content within a computerized learning system, comprising: switching from text mode into scientific mode; converting plain-language text input into scientific code; displaying a graphical representation of the scientific code in-line with the text; and adaptively predicting plain-language text input using context-based prediction.
 75. The method of claim 74 further comprising generating a message when the plain-language input does not correlate with known symbols within the scientific code.
 76. The method of claim 74 further comprising adaptively predicting solutions to equalities in a scientific equation based on the plain-language text input in scientific mode.
 77. A method for annotating learning tools within a computerized learning system, comprising: storing a first user's annotation of a learning tool in the computerized learning system, the learning tool having a plurality of characteristics; permitting at least a second user of a plurality of users to have access to the annotated learning tool; and creating a learning tool object corresponding to the annotated learning tool, the annotated learning tool having a plurality of characteristics; and setting a subset of the plurality of characteristics of the annotated learning tool to be the same as a corresponding subsets of the plurality of characteristics of the learning tool. 